如何:从命令行创建 Windows 窗体应用程序
下面的过程介绍从命令行创建和运行 Windows 窗体应用程序所必须完成的基本步骤。 在 Visual Studio 中没有对这些过程的扩展支持。 另请参阅演练:在 WPF 中承载 Windows 窗体控件。
过程
若要创建窗体
在空代码文件中,键入以下
Imports
或using
语句:using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms;
Imports System.ComponentModel Imports System.Drawing Imports System.Windows.Forms
声明一个从 Form 类继承的名为
Form1
的类:public class Form1 : Form
Public Class Form1 Inherits Form
为
Form1
创建一个无参数构造函数。将在后续过程中向构造函数添加更多代码。
public Form1() {}
Public Sub New() End Sub
将
Main
方法添加到类。将 STAThreadAttribute 应用到 C#
Main
方法,以指定 Windows 窗体应用程序是一个单线程单元。 (Visual Basic 中不需要此属性,因为使用 Visual Basic 开发的 Windows 窗体应用程序默认使用单线程单元模型。)调用 EnableVisualStyles 以将操作系统样式应用于应用程序。
创建一个窗体实例,并运行。
[STAThread] public static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
Public Shared Sub Main() Application.EnableVisualStyles() Application.Run(New Form1()) End Sub End Class
编译并运行该应用程序
在.NET Framework 命令提示符处,导航到创建
Form1
类的目录。编译该窗体。
如果你使用的是 C#,请键入:
csc form1.cs
-or-
如果使用的是 Visual Basic,请键入:
vbc form1.vb
在命令提示符处,键入:
Form1.exe
添加控件并处理事件
上一过程中的步骤演示了如何只创建一个可编译和运行的基本 Windows 窗体。 下一个过程中将显示如何创建控件并将其添加到窗体中,以及如何处理控件的事件。 有关可以添加到 Windows 窗体的控件的详细信息,请参阅 Windows 窗体控件。
除了解如何创建 Windows 窗体应用程序外,还应了解基于事件的编程以及如何处理用户输入。 有关详细信息,请参阅在 Windows 窗体中创建事件处理程序和处理用户输入
若要声明一个按钮控件和处理其 click 事件
请声明一个名为
button1
的按钮控件。向窗体添加按钮。
下面的代码示例演示如何声明按钮控件:
public Button button1; public Form1() { button1 = new Button(); button1.Size = new Size(40, 40); button1.Location = new Point(30, 30); button1.Text = "Click me"; this.Controls.Add(button1); button1.Click += new EventHandler(button1_Click); }
Public WithEvents button1 As Button Public Sub New() button1 = New Button() button1.Size = New Size(40, 40) button1.Location = New Point(30, 30) button1.Text = "Click me" Me.Controls.Add(button1) End Sub
创建一个方法来处理该按钮的 Click 事件。
在 Click 事件处理程序中,显示带有消息“Hello World”的 MessageBox。
下面的代码示例演示如何处理按钮控件的 Click 事件:
private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Hello World"); }
Private Sub button1_Click(ByVal sender As Object, _ ByVal e As EventArgs) Handles button1.Click MessageBox.Show("Hello World") End Sub
将 Click 事件与创建的方法相关联。
下面的代码示例演示如何将事件与方法相关联。
button1.Click += new EventHandler(button1_Click);
Private Sub button1_Click(ByVal sender As Object, _ ByVal e As EventArgs) Handles button1.Click
编译并运行该应用程序,如之前过程中所述。
示例
以下代码示例是上一过程的完整示例:
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace FormWithButton
{
public class Form1 : Form
{
public Button button1;
public Form1()
{
button1 = new Button();
button1.Size = new Size(40, 40);
button1.Location = new Point(30, 30);
button1.Text = "Click me";
this.Controls.Add(button1);
button1.Click += new EventHandler(button1_Click);
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello World");
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
}
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms
Public Class Form1
Inherits Form
Public WithEvents button1 As Button
Public Sub New()
button1 = New Button()
button1.Size = New Size(40, 40)
button1.Location = New Point(30, 30)
button1.Text = "Click me"
Me.Controls.Add(button1)
End Sub
Private Sub button1_Click(ByVal sender As Object, _
ByVal e As EventArgs) Handles button1.Click
MessageBox.Show("Hello World")
End Sub
<STAThread()> _
Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1())
End Sub
End Class