Looking for winforms Answers? Try Ask4KnowledgeBase
Looking for winforms Keywords? Try Ask4Keywords

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 的應用程序。您可以從命令行運行此應用程序,也可以在資源管理器中雙擊它。