1.4 C#如何展现一个WINDOWS窗体

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

1、首先让我们来看一段代码

namespace WindowsFormsApplication2

{

    static class Program

    {

       static void Main()

        {

            Form1 frm = new Form1();

            frm.Show();

        }

    }

}

上面代码实例化了一个Form1对象,然后用Show()方法展现出来,但是只能在屏幕上生成一个一闪而过的windows窗体。 因为程序是顺序执行的,执行完frm.Show()这条语句后,程序接着向下执行就结束了,当然不能展现一个持久的窗体。这不是我们所希望的。我们想要一个窗体在屏幕上一直存在,直到关闭它。

 

2、那么现在在frm.Show()代码下面加点东西阻止它直接运行到结束

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

using System.Threading;

namespace WindowsFormsApplication2

{

    static class Program

    {

      

        static void Main()

        {

         

            Form1 frm = new Form1();

            frm.Show();

            Thread.Sleep(2000);

        }

    }

}

红色代码为加上的语句,让程序暂时休息2秒种。

Thread类要在程序头引用using System.Threading;才行。

这样,frm 这个窗体会在屏幕上停留2秒,程序才消失。

 

3、好吧,想个办法在frm.Show()下塞个东西让它一辈子都不能主动运行到程序未尾,我们加个无限循环语句在下面试试

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

using System.Threading;

namespace WindowsFormsApplication2

{

    static class Program

    {

   

        static void Main()

        {

            Form1 frm = new Form1();

            frm.Show();

            while(true)

            {  }

        }

    }

}

哈哈,加了个条件为真的无限循环,这下窗体真的停留下来了,窗体被循环语句阻档住再也不能向下顺序执行了。但是我们发现一个重大的问题,程序的可执行时间被这个循环耗尽了,程序一但执行,窗体就死在屏幕上了,一动也不能动,全部程序时间都在死循环内不停消耗出不来了。这不是我们想要的效果,那么怎么办呢?我想要在下面插入一种循环。它有这样的功能,不能让程序结束,自已也不能把程序的时间全占用掉,要分给整个程序一部分时间,这种功能让我们想到了VC中的消息循环机制。

 

4C#中也有类似的东西,这就是Application.Run();

 

  static void Main()

        {

            Form1 frm = new Form1();

            frm.Show();

            Application.Run();

        }

好了,在下面加上这句代码后,Application.Run();这就是一个消息循环,把窗体代码挡住不至于执行结束。而且这个消息循环也不占用全部时间片,而是把一部分时间让给程序用,这样整个程序不至于死在屏幕上。 OK,程序执行后,很好,窗体停在屏幕上,可以自由移动。 我们试着关闭窗体,发现窗体可以关闭, 但是问题也就来了,重新执行一下程序,发现出错了,不让执行。原来窗体是关闭了,但是整个程序没有停止运行,它还在后台继续运行。因为窗体关闭,只是窗体线程停止运行,但是程序的主线程,也就是这个Application.Run();循环,还在运行。这不是我们想要的,我们希望一关闭窗体,整个程序全部结束。

 

5、还好C#提供了这样的功能,很简单可以实现

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

using System.Threading;

namespace WindowsFormsApplication2

{

    static class Program

    {

   

        static void Main()

        {

        

            Form1 frm = new Form1();

            //frm.Show();

            frm.Visible = true;

            Application.Run(frm);

         

        }

    }

}

frm窗体实例作为参数传递给Application.Run(frm);即可,由Application.Run来保证当窗体关闭时,消息循环结束,整个程序结束。

6、另外要说一点在解决方案中存在多个项目时,要设置某个项目为启动项目,只需右键单击此项目,选择成为启动项目即可。但是启动窗口的设置没有这种快捷方式。

  Application.Run(frm);中当参数的窗体就是主窗体,也就是启动窗体,如果一个项目中有多个窗体,要把哪一个窗体当启动窗体,就必须把哪个窗体的实例对象传递到Application.Run()中。

 

 

C语言实现窗体程序,DevC++ 窗体应用 DevC++ 窗体应用,C语言窗体程序 对于很多学习C语言的同学来说,平时自己写的都是控制台程序,一个黑板版,很难受。 今天教大家用C,写出一个窗体exe。 效果 创建一个文件,扩展名.c,然后把源码复制上去。 修改时,把自己要绘制的内容放入第三行draw函数里面就可以啦。 好吧,直接上源码: #include <string.h> #include <windows.h> void draw(HWND hwnd) { HDC hdc; PAINTSTRUCT p 阅读详情

相关推荐

c# Windows窗体应用程序设计综合实例-------小游戏设计

c# Windows窗体应用程序设计综合实例(一)匹配游戏设计 上次的计时器运行效果图如下: = ------------------------------------------------------------------------------ 今天来分享一个综合实例,设计一个匹配小游戏。 本次实例步骤较多,切勿搞混。 步骤一 新建项目 1.目的:创建项目设计布局表。该表有助于将图标...

WindsProgrammer的博客 1万+

C#通过窗体命名空间和名称创建窗体且打开

在进行Winform项目的开发过程中,需要实现通过窗体的命名空间和名称来创建该窗体,且打开该窗体;适用于Winform项目的菜单界面配置功能。①可以使用反射或程序集(根据窗体的命名空间和名称创建出该窗体的实例);②编写打开窗体方法;

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 868

C#开发Windows窗体应用程序的步骤

使用C#开发应用程序时,一般包括创建项目、界面设计、设置属性、编写程序代码、保存项目、程序运行等6个步骤。 1.创建项目 在Visual Studio2017开发环境中选择“文件”→“新建”→“项目”菜单,弹出“新建项目”对话框,如图8.1所示。 图8.1  “新建项目”对话框 选择“Windows窗体应用(.NET Framework)”、输入项目的名称、选择保存路径,然后单击“

JAVA编程词(Java) 3万+

纯C+纯手写+手动编译 一个windows 窗体应用(过程记录)

(纯C + 纯手写 + 手动编译) 一个Windows 窗体应用 本篇文章仅仅是作者的一个类似笔记一样的东西,作为记录。所以请勿出现如下不友善评论 啊,这不是某某IDE直接就可以生成的吗。 搞这个东西有什么意义啊,浪费时间。 正经人谁用Win32 API写窗体程序啊,Qt跨平台他不香嘛。 所以本文章只是记录一下,我遇到的问题和结果问题的过程思路等,或者有对Win32 API感兴趣的同学,可以参考,学习提出问题一起解决等。 因为只是个笔记,所以教程中可能有些不符合项目代码规范的地方,请谅解。 正文 0x

qq_58286297的博客 3377

C#窗口介绍

(21)Font属性:用来获取或设置控件显示的文本的字体。(7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。(8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。(23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面(MDI)子窗体。(24)IsMdiContainer 属性:获取或设置一个值,该值指示窗体是否为多文档界面(MDI)中的子窗体的。(9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。

lbaihao的专栏 4830

使用C#窗体显示与隐藏动画效果方案 - 开源研究系列文章

  今天继续研究C#的WinForm的显示动画效果。   上次我们实现了无边框窗体显示动画效果(见博文:基于C#的无边框窗体动画效果的完美解决方案 - 开源研究系列文章 ),这次介绍的是未在任务栏托盘中窗体显示隐藏动画效果的实现代码。   1、 项目目录;   下面是项目目录,由基本的窗体和操作类组成。   2、 代码介绍;   代码比较简单,直接将窗体的最小化、最大化效果加入...

lzhdim的专栏 1237

C#学习教程12——Windows窗体应用程序

C#学习教程,适合新手小白,附带学习源码。

Kint的博客 5万+

C# Windows 窗体开发基础

窗体Windows Forms 应用程序的基本构件,作为用户界面的容器。C# 的Form类提供了创建窗体的基本功能,而控件则是窗体上的各个功能组件,如按钮、标签、文本框等。每个控件都是Control类的派生类,可以通过拖放或代码动态添加到窗体上。// 简单的窗体创建示例在此示例中,我们创建了一个带有按钮的窗体。方法将控件添加到窗体上。

qq_45728381的博客 3836

c#点击按钮调出另一个窗体_c#Windows窗体应用程序

步骤:打开visual studio2013开发软中,在菜单栏中选择“文件”命令,可以看到“新建”、“项目”选择。3.在已经安装的模板中选择编程语言为visualC#,选择其中的windows经典桌面中的Windows窗体应用(用来创建具有Windows窗体用户界面的应用程序),项目名为“MyFirstForm”。4.在我们创建好项目后,解决方案中包含了Form1.cs文件。这个就是窗体应用程序项...

weixin_31184715的博客 7733

C#窗体中创建子窗体显示、排列子窗体

VS中选择C#Windows窗体应用创建父窗体Form1,默认生成Program.cs、Form1.cs、Form1.Designer.cs三个C#文件,右键Form1.cs有两种显示模式,一种为查看代码Form1.cs,一种为查看设计器Form1.cs[设计]。查看设计器Form1.cs[设计],右键属性,把属性IsMdiContainer的值修改为True。

wenchm的博客 1万+

1.1 用VisualStudio建一个最简单的登录窗体程序(入门系列)

C#一个简单的、快速、面向对象的编程语言,它是由微软(Microsoft)开发的。很容易上手,这里就带大家入门体验一下。环境:Visual Studio 2012 + Win10。 1.新建项目 2.选择C#->Windows窗体程序(权限问题,不建议把项目放C盘) 3.点击左侧栏的工具箱,鼠标Button、Label、textBox拖入到窗体界面中,分别放置到合适的位置。 4.点击各个组件,在右下角可以设置外观等属性(文字大小、颜色等) 注:设置TextBox的Pa.

LayHill的博客 1万+

Windows窗体学这一篇就够了(C#控件讲解)

常用控件包括文本控件、选择控件、分组控件、菜单控件、工具栏控件以及状态栏控件常用控件的作用控件分类作用文本控件文本控件可以在控件上显示文本选择控件主要为用户提供选择的项目分组控件使用分组控件可以将窗体中的其他控件进行分组处理菜单控件为系统制作功能菜单,将应用程序命令分组,使它们更容易访问工具栏控件提供了主菜单中常用的相关工具状态栏控件用于显示窗体上的对象的相关信息,或者可以显示应用程序的信息通过设置DateTimePicker控件的CustomFormat属性,可自定义日期时间格式字符串。

weixin_51263756的博客 6万+

C#Windows窗体笔记整合,超全~ 超全~ 超全~】

本文禁止转载 GO!GO!GO! C# Windows //1.Windows简介 ● 入口程序 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace day10_02 { static class Program { /// <summary&g.

冯上 9519

C#实现Windows窗体应用

Windows窗体(Windows Forms)是.NET框架中用于创建图形用户界面(GUI)的成熟技术,它提供了一种简单直观的方式来构建Windows桌面应用程序。本文将详细介绍如何使用Microsoft Visual Studio和C#语言开发Windows窗体应用程序,即使你没有数据库连接的需求,也能创建功能丰富的桌面程序。通过本文,你已经学习了如何使用C#Windows Forms创建功能丰富的桌面应用程序,涵盖了从基础控件到高级功能的各个方面。

2403_87773780的博客 1733

C#创建windows窗体应用(WinfForm)

C#创建windows窗体应用(WinfForm)1 环境搭建2 创建简单示例工程2.1 新建项目2.2 选择Visual C#节点中的Windows 窗体应用2.3 修改1中的form名,点击2中视图菜单下拉中的工具箱,之后3中出现控件,直接根据需要拖到窗体中就行3 创建多窗体工程3.1 新建项目3.2 选择Visual C#节点中的Windows 窗体应用3.3 左击工程文件,弹出菜单中选择添...

天道酬勤 7703

Windows窗体应用程序

2..NET包括CIL和CLR:CIL(Common Intermediate Language,通用中间语言)和CLR(Common Language Runtime,公共语言运行库) 3.CIL(Common Intermediate Language,通用中间语言):包括了一般系统、基础类库和机器无关的中间代码 4.CLR(Common Language Runtime,公共语言运行库)则是确认操作密码符合CLI的平台 5.C#是专门为与微软公司的.NET Framework一起使用而设计的。

2301_78256239的博客 1880

C#学习笔记四 Windows窗体应用程序

窗体是程序与用户交互的可视界面,窗体也是对象,窗体类定义了生成窗体的模版,实例化一个窗体类就产生了一个窗体.NET框架类库的System.Windows.Forms命名空间中定义的Form类是所有窗体类的基类。1、常用属性属性:图标、标题、位置、背景等可在窗体属性面板设置,也可以代码实现。(1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。(2)WindowS

TJT999 3万+

Visual Studio 2010创建Windows窗体应用程序

Windows窗体应用程序指的是在Windows操作系统上运行的应用程序,它们使用了Windows窗体库来创建用户界面。Windows窗体应用程序通常具有窗体、按钮、文本框、菜单等控件,用户可以通过与这些控件交互来完成各种任务。开发Windows窗体应用程序一般使用Visual Studio等集成开发环境(IDE),通过拖拽和配置控件,开发人员可以快速地创建用户界面。在创建窗体应用程序时,开发人员可以使用C#、VB.NET等编程语言来编写逻辑代码,与控件进行交互,处理用户输入,展示数据等。

qq_73702550的博客 4035

C#中控制台程序与windows窗体应用程序的编程区别

控制台程序代码段: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication { class Program { static v...

Elsa~的博客 1万+
上一篇: 1.3 VS2008中命令行参数在何处输入
下一篇: 1.5 窗体中如何实现paint事件
hckoyb
博客等级 码龄19年 45粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值