System.Windows.Forms

要创建一个 Windows 桌面应用程序,我们使用由 System.Windows.Forms 命名空间表示的库。这个命名空间中一些常用的类包括:

  • Control - 一个通用类,其他有用的类(如 Form、TextBox 等)都继承自它。
  • Form - 这是程序窗口的基类。所有其他控件都直接放置在 Form 上,或者间接放置在另一个容器(如 TabPage 或 TabControl)中,这些容器最终都在 Form 上。通常在 Visual Studio 中自动创建时,它会作为 Form1 类进行子类化。
  • Button - 一个可点击的按钮。
  • TextBox - 一个单行或多行文本框,可以用于显示或输入文本。
  • RichTextBox - 一个扩展的 TextBox,可以显示有样式的文本,例如部分文本有颜色或使用特定的字体。RichTextBox 还可以显示通用的 RTF 文档,包括嵌入的图像。
  • Label - 一个简单的控件,用于显示一行未样式化的文本,通常用于各种标题和标签。
  • ListBox - 用于显示多个项目(文本行),可以选择一个项目并进行滚动。
  • ComboBox - 类似于 ListBox,但呈现为下拉菜单。
  • TabControl 和 TabPage - 用于在标签化界面中分组控件(类似于 Visual Studio 或 Mozilla Firefox 中的标签化界面)。一个 TabControl 包含多个 TabPage 对象。
  • DataGrid - 数据网格/表格视图。

Form 类

Form 类 (System.Windows.Forms.Form) 是该命名空间中一个非常重要的部分,因为表单是 Windows 应用程序的关键图形构建块。它提供了一个视觉框架,用于容纳按钮、菜单、图标和标题栏。集成开发环境(IDE)如 Visual C# 和 SharpDevelop 可以帮助创建图形应用程序,但了解如何手动创建也是很重要的:

using System.Windows.Forms;

public class ExampleForm : Form    // 继承自 System.Windows.Forms.Form
{
    public static void Main()
    {
        ExampleForm wikibooksForm = new ExampleForm();

        wikibooksForm.Text = "I Love Wikibooks";  // 指定表单标题
        wikibooksForm.Width = 400;                // 设置窗口宽度(像素)
        wikibooksForm.Height = 300;               // 设置窗口高度(像素)
        Application.Run(wikibooksForm);           // 显示表单
    }
}

上述示例创建了一个简单的窗口,标题栏上显示 "I Love Wikibooks"。像上面的示例一样,定制的表单类继承自 System.Windows.Forms.Form 类。设置 TextWidthHeight 属性是可选的。即使注释掉这些行,程序仍然会编译并运行,但这些属性让我们可以对表单进行更多控制。

事件

事件是程序执行的一种动作,当用户或计算机采取某种操作时(例如,点击按钮、鼠标悬停在图像上等)。事件处理程序是一个对象,确定在事件触发时应该采取的行动。

using System.Windows.Forms;
using System.Drawing;

public class ExampleForm : Form    // 继承自 System.Windows.Forms.Form
{
    public ExampleForm()
    {
        this.Text = "I Love Wikibooks";           // 指定表单标题
        this.Width = 300;                         // 设置窗口宽度(像素)
        this.Height = 300;                        // 设置窗口高度(像素)

        Button HelloButton = new Button();
        HelloButton.Location = new Point(20, 20); // 设置按钮位置(像素)
        HelloButton.Size = new Size(100, 30);     // 设置按钮大小(像素)
        HelloButton.Text = "Click me!";           // 设置按钮文本

        // 点击按钮时,会触发这个事件
        HelloButton.Click += new System.EventHandler(WhenHelloButtonClick);

        this.Controls.Add(HelloButton);
    }

    void WhenHelloButtonClick(object sender, System.EventArgs e)
    {
        MessageBox.Show("You clicked! Press OK to exit this message");
    }

    public static void Main()
    {
        Application.Run(new ExampleForm());       // 显示表单
    }
}

控件

Windows Forms 命名空间中有很多非常有趣的类。最简单且重要的一个是 Form 类。一个表单是任何 Windows 应用程序的关键构建块。它提供了一个视觉框架,用于容纳按钮、菜单、图标和标题栏。表单可以是模式的和非模式的,拥有者和被拥有者,父类和子类。虽然可以使用记事本创建表单,但使用表单编辑器如 VS.NET、C# Builder 或 SharpDevelop 可以大大加快开发速度。在本节中,我们不会使用 IDE,而是将以下代码保存为文本文件,并使用命令行编译器编译。

using System.Windows.Forms;
using System.Drawing;

public class ExampleForm : Form    // 继承自 System.Windows.Forms.Form
{
    public ExampleForm()
    {
        this.Text = "I Love Wikibooks";         // 指定表单标题
        this.BackColor = Color.White;
        this.Width = 300;                       // 设置窗口宽度(像素)
        this.Height = 300;                      // 设置窗口高度(像素)

        // 一个 Label 控件
        Label TextLabel = new Label();
        TextLabel.Text = "One Label here!";
        TextLabel.Location = new Point(20, 20);
        TextLabel.Size = new Size(150, 30);
        TextLabel.Font = new Font("Arial", 12); // 我们可以修改文本的字体
        this.Controls.Add(TextLabel);           // 将控件添加到表单

        // 一个输入文本框
        TextBox Box = new TextBox();            // 继承自 Control
        Box.Location = new Point(20, 60);       // 设置文本框位置(像素)
        Box.Size = new Size(100, 30);
        this.Controls.Add(Box);                 // 所有继承自 Control 的类都可以添加到表单中
    }

    public static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new ExampleForm());     // 显示表单
    }
}

该代码展示了如何创建一个简单的表单,其中包含一个标签(Label)和一个文本框(TextBox)。表单的背景色被设置为白色,标签和文本框都被添加到表单上。

Last modified: Sunday, 12 January 2025, 12:34 AM