于.NET的Windows窗体编程就是我们常说的WinForms编程它一个基于.NET的UI框架用于创建适用于 Windows 的丰富桌面客户端应用Windows窗体开发平台支持广泛的应用开发功能包括控件、图形、数据绑定和用户输入。对于Windows窗体编程微软也提供了Visual Studio这一开发神器通过Visual Studio的可视化控件拖放等功能可以轻松构建桌面应用。在Windows窗体中窗体是向用户显示信息的可视界面通过窗体上的控件来显示信息接收用户请求等操作这些控件可以显示文本框、按钮、下拉框、单选按钮甚至网页等非常丰富的内容。Windows窗体编程中的控件可以是简单的按钮文本框也可以是复杂的数据列表菜单等内容在接下来的文章中由浅入深会逐一讲解。创建Windows窗体应用所谓“工欲善其事必先利其器”开发Windows窗体应用程序首先需要安装Visual Studio它是编程开发IDE集开发调试编译于一体的开发神器。主要有企业版本专业版本社区版本等不同版本本文以学习分享为主采用VS2022社区版。打开Visual Studio点击“创建新项目(N)”打开创建新项目向导页面。在打开的“创建新项目”向导页面选择“Windows窗体应用”项目模板它包含两个模板一个基于.NET的Windows窗体应用模板一个是基于.NET Framework的Windows窗体应用模板。在此我们选择第一个然后点击“下一步”打开“配置新项目”对话框。在“配置新项目”对话框输入项目名称如Okcoder.WinForms.Hello以及项目保存位置然后点击“下一步”打开“其他信息”对话框。在“其他信息”对话框中选择应用程序目标框架在此默认选择“.NET8.0(长期支持)”也可以通过右侧的下拉箭头进行修改然后点击“创建”按钮应用程序创建成功后在Visual Studio中主要包含4个重要组成部分分别如下所示解决方案资源管理器所有项目文件、代码、窗体和资源都将显示在此窗口中。属性此窗口显示的属性设置可以根据所选项目的上下文进行配置。 例如如果从解决方案资源管理器中选择项则会看到与文件相关的设置。 如果在 设计器中选择对象则会看到控件或窗体的属性。表单设计器这是表单的设计工具。 它是交互式的可以从 工具箱中拖放对象。 通过选择和移动设计器中的项你可以直观地为应用组合用户界面UI。工具箱工具箱包含可添加到表单的所有控件。 若要将控件添加到当前窗体请双击控件或将控件拖放到窗体。默认情况下Visual Studio不会打开工具箱和属性窗口。 Visual Studio会记住您打开这些窗口的操作并在以后保持打开。可以通过点击菜单栏“视图(V)”然后“工具箱(X)”打开工具箱窗口及“属性窗口(W)”菜单打开属性窗口。Form窗体通过模板创建WinForms应用程序会默认创建一个Form1窗体它是System.Windows.Forms.Form的派生类表示一个用于构建应用程序的窗口Window或弹出框Dialog box。它是窗体应用程序中的顶级容器可以向Form中添加控件并处理对应的事件。那么如何添加新的窗体呢首先在需要添加新窗体的项目上右键在弹出的快捷菜单中选择“添加(D)”然后在弹出的子菜单中选择“窗体(Windows窗体)(F)...”然后打开添加窗体对话框。在打开的添加新项对话框中会默认选择“窗体(Windows窗体)”模板然后输入窗体名称(N)如“Form2”点击“添加(A)”即可。创建成功后Form窗体文件主要包含3部分如下所示Form2.cs主要包含构造函数用于编写业务逻辑功能Form2.Designer.cs当向窗体拖放控件时会自动生成控件的构建布局相关代码以及用户通过属性窗口设置的属性等内容。Form2.resx主要用于存储资源相关内容。注意Form2.Designer.cs及Form2.resx这两个文件一般通过VS设计器自动生成无需要手动修改。Form窗体常见属性与事件在日常开发中经常用到的Form窗体的主要属性Name窗体的名称在相同的namespace下Name应该保持唯一。Text用于设置Form窗体的标题文本。WindowState用于设置窗体的初始可视状态它是一个枚举主要有3个选项Normal(正常状态)Maximized(最大化)Minimized(最小化)。StartPosition窗体第一次出现时的位置。它是一个枚举主要有5个选项WindowsDefaultLocation(默认位置窗体大小)Manual(手动设置的位置)CenterScreen(屏幕中心)CenterParent(父窗体的中心)WindowsDefaultBounds(默认位置默认边界)。ClientSize窗体大小单位为Size包含WidthHeight两个值。TopMost用于设置窗体是否永远在其他未设置此属性为true的窗体之上。Form窗体在最常用事件主要有以下几个Load窗体被加载时触发主要用于初始化窗体需要的信息。FormClosing窗体被关闭之前触发可以用FormClosingEventArgs参数的Cancel来设置是否真的关闭窗体。如果设置Cancel为true则取消关闭窗体。FormClosed窗体被关闭之后触发可以用来释放资源等操作。在Visual Studio设计器选择Form窗体在右下角的属性窗口中可以直接设置对应的属性如下所示事件也可以在属性窗口的切换后事件Tab页进行双击设置。如下所示当通过属性窗口中设置相应的属性和事件后会在窗体对应的Designer.cs类文件中自动生成相关代码如下所示并在表单对应的.cs文件中生成对应的事件委托方法体可以在其中编写业务逻辑如下所示运行调试在Visual Studio中有以下几种方式可以调试启动程序点击Visual Studio工具栏中的“开始调试”按钮绿色实心右箭头通过F5快捷键通过菜单栏“调试(D)”然后在子菜单中选择“开始调试(S)”如果只想启动程序不需要调试则可以通过如下方式启动点击Visual Studio工具栏中的“开始执行(不调试)”按钮绿色空心右箭头通过CtrlF5快捷键通过菜单栏“调试(D)”然后在子菜单中选择“开始执行(不调试)(H)”在上述过程中我们将窗体的标题设置为了“HelloWorld”希望可以通过经典的HelloWorld来打开.NET Windows窗体编程的新大门。程序运行成功后如下所示