winformswinforms入门


备注

Windows Forms (简称“WinForms”)是.NET Framework附带的GUI类库。它是围绕Win32 API的复杂的面向对象的包装器,允许开发面向.NET Framework的Windows桌面和移动应用程序。

WinForms主要是事件驱动的 。应用程序由多个表单 (在屏幕上显示为窗口)组成,其中包含用户直接与之交互的控件 (标签,按钮,文本框,列表等)。为响应用户交互,这些控件引发程序可以处理以执行任务的事件。

就像在Windows中一样,WinForms中的所有东西都是一个控件,它本身就是一种窗口。基类Control类提供基本功能,包括用于设置文本,位置,大小和颜色的属性,以及可以处理的一组常见事件。所有控件都派生自Control类,添加了其他功能。某些控件可以托管其他控件,可重用性( FormUserControl )或布局( TableLayoutPanelFlowLayoutPanel )。

自.NET Framework(v1.0)的原始版本以来,WinForms一直受到支持,并且仍然可以在现代版本(v4.5)中使用。但是,它不再处于活跃开发阶段,并且没有添加任何新功能。 根据Build 2014大会上的9位微软开发人员的说法

Windows Forms将继续受支持,但处于维护模式。他们将在发现错误时修复错误,但新功能已不在考虑之列。

跨平台的开源Mono库提供了Windows Forms的基本实现,支持Microsoft实现.NET 2.0的所有功能。但是,WinForms并没有在Mono上积极开发,并且考虑到框架与本机Windows API(在其他平台中不可用)之间存在着不可分割的联系,因此认为完全实现是不可能的。

也可以看看:

使用Visual Studio创建一个简单的WinForms应用程序

此示例将向您展示如何在Visual Studio中创建Windows窗体应用程序项目。

创建Windows窗体项目

  1. 启动Visual Studio。

  2. 在“ 文件”菜单上,指向“ 新建” ,然后选择“ 项目” 。将出现“ 新建项目”对话框。

  3. 在“ 已安装的模板”窗格中,选择“Visual C#”或“Visual Basic”。

  4. 在中间窗格上方,您可以从下拉列表中选择目标框架。

  5. 在中间窗格中,选择Windows窗体应用程序模板。

  6. 在“ 名称”文本框中,键入项目的名称。

  7. 在“ 位置”文本框中,选择要保存项目的文件夹。

  8. 单击确定

  9. Windows窗体设计器将打开并显示项目的Form1

向窗体添加控件

  1. 从“ 工具箱”面板中,将“ Button”控件拖到窗体上。

  2. 单击按钮将其选中。在“属性”窗口中,将“ Text 属性设置为“ Say Hello”

    Visual Studio设计器,显示带有按钮的表单

编写代码

  1. 双击该按钮以添加Click 事件的事件处理程序。代码编辑器将打开,插入点位于事件处理函数中。

  2. 输入以下代码:

    C#

    MessageBox.Show("Hello, World!");
     

    VB.NET

    MessageBox.Show("Hello, World!")
     

运行和测试

  1. F5运行该应用程序。

    表单,在运行应用程序时显示

  2. 当您的应用程序运行时,单击按钮以查看“Hello,World!”信息。

    一个消息框,上面写着“Hello,World!”

  3. 关闭窗体以返回到Visual Studio。

使用文本编辑器创建简单的C#WinForms应用程序

  1. 打开文本编辑器(如记事本),然后键入以下代码:

     using System;
     using System.ComponentModel;
     using System.Drawing;
     using System.Windows.Forms;
    
     namespace SampleApp
     {
         public class MainForm : Form
         {
             private Button btnHello;
    
             // The form's constructor: this initializes the form and its controls.
             public MainForm()
             {
                 // Set the form's caption, which will appear in the title bar.
                 this.Text = "MainForm";
    
                 // Create a button control and set its properties.
                 btnHello = new Button();
                 btnHello.Location = new Point(89, 12);
                 btnHello.Name = "btnHello";
                 btnHello.Size = new Size(105, 30);
                 btnHello.Text = "Say Hello";
    
                 // Wire up an event handler to the button's "Click" event
                 // (see the code in the btnHello_Click function below).
                 btnHello.Click += new EventHandler(btnHello_Click);
    
                 // Add the button to the form's control collection,
                 // so that it will appear on the form.
                 this.Controls.Add(btnHello);
             }
    
             // When the button is clicked, display a message.
             private void btnHello_Click(object sender, EventArgs e)
             {
                 MessageBox.Show("Hello, World!");
             }
    
             // This is the main entry point for the application.
             // All C# applications have one and only one of these methods.
             [STAThread]
             static void Main()
             {
                 Application.EnableVisualStyles();
                 Application.Run(new MainForm());
             }
         }
     }
     
  1. 将文件保存到您具有读/写访问权限的路径。通常在文件包含的类之后命名文件 - 例如, X:\MainForm.cs
  1. 从命令行运行C#编译器,将路径作为参数传递给代码文件:

     %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:winexe "X:\MainForm.cs"
     

    注意:要将C#编译器的一个版本用于其他.NET框架版本,请查看路径%WINDIR%\Microsoft.NET 并相应地修改上面的示例。有关编译C#应用程序的更多信息,请参阅编译并运行第一个C#程序

  1. 编译完成后,将在与代码文件相同的目录中创建名为MainForm.exe 的应用程序。您可以从命令行运行此应用程序,也可以在资源管理器中双击它。

使用文本编辑器创建简单的VB.NET WinForms应用程序

  1. 打开文本编辑器(如记事本),然后键入以下代码:

     Imports System.ComponentModel
     Imports System.Drawing
     Imports System.Windows.Forms
    
     Namespace SampleApp
         Public Class MainForm : Inherits Form
             Private btnHello As Button
     
             ' The form's constructor: this initializes the form and its controls.
             Public Sub New()
                 ' Set the form's caption, which will appear in the title bar.
                 Me.Text = "MainForm"
     
                 ' Create a button control and set its properties.
                 btnHello = New Button()
                 btnHello.Location = New Point(89, 12)
                 btnHello.Name = "btnHello"
                 btnHello.Size = New Size(105, 30)
                 btnHello.Text = "Say Hello"
     
                 ' Wire up an event handler to the button's "Click" event
                 ' (see the code in the btnHello_Click function below).
                 AddHandler btnHello.Click, New EventHandler(AddressOf btnHello_Click)
     
                 ' Add the button to the form's control collection,
                 ' so that it will appear on the form.
                 Me.Controls.Add(btnHello)
             End Sub
     
             ' When the button is clicked, display a message.
             Private Sub btnHello_Click(sender As Object, e As EventArgs)
                 MessageBox.Show("Hello, World!")
             End Sub
     
             ' This is the main entry point for the application.
             ' All VB.NET applications have one and only one of these methods.
             <STAThread> _
             Public Shared Sub Main()
                 Application.EnableVisualStyles()
                 Application.Run(New MainForm())
             End Sub
         End Class
     End Namespace
     
  1. 将文件保存到您具有读/写访问权限的路径。通常将文件命名为它包含的类 - 例如, X:\MainForm.vb
  1. 从命令行运行VB.NET编译器,将路径作为参数传递给代码文件:

     %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\vbc.exe /target:winexe "X:\MainForm.vb"
     

    注意:要将VB.NET编译器的一个版本用于其他.NET框架版本,请查看路径%WINDIR%\Microsoft.NET 并相应地修改上面的示例。有关编译VB.NET应用程序的更多信息,请参阅Hello World

  1. 编译完成后,将在与代码文件相同的目录中创建名为MainForm.exe 的应用程序。您可以从命令行运行此应用程序,也可以在资源管理器中双击它。