c#编程
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
类。设置 Text
、Width
和 Height
属性是可选的。即使注释掉这些行,程序仍然会编译并运行,但这些属性让我们可以对表单进行更多控制。
事件
事件是程序执行的一种动作,当用户或计算机采取某种操作时(例如,点击按钮、鼠标悬停在图像上等)。事件处理程序是一个对象,确定在事件触发时应该采取的行动。
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)。表单的背景色被设置为白色,标签和文本框都被添加到表单上。