3. Form类 - Winform
在C# WinForm应用程序中,Form 类是用户界面的基础,代表一个窗口或对话框。它为应用程序提供了一个可视化的容器,用于承载各种控件,实现与用户的交互。
1. Form 类的主要特点和功能
- 容器功能:
Form可以容纳各种Windows Forms控件,如按钮(Button)、文本框(TextBox)、标签(Label)等,通过将这些控件添加到Form上,可以构建出复杂的用户界面。 - 窗口管理:它负责管理窗口的外观和行为,包括设置窗口的标题、大小、位置、边框样式、最大化最小化按钮状态等。例如,可以通过设置
FormBorderStyle属性来改变窗口的边框样式,如无边框、固定单边框、可调整大小边框等。 - 事件处理:
Form类支持多种事件,用于响应用户操作或系统事件。常见的事件包括Load(在窗体加载时触发)、Click(当用户点击窗体时触发)、Closing和Closed(在窗体关闭过程中及关闭后触发)等。通过为这些事件编写处理程序,可以实现各种功能逻辑。
2. 常用属性
Text:设置或获取显示在窗体标题栏中的文本。Size:获取或设置窗体的大小,以像素为单位,由宽度和高度组成。Location:获取或设置窗体左上角相对于其父容器(通常是屏幕)的坐标位置。FormBorderStyle:指定窗体的边框样式,取值包括None(无边界)、FixedSingle(固定单边框,不能调整大小)、FixedDialog(固定对话框样式,不能调整大小)、Sizable(可调整大小的边框)等。StartPosition:设置窗体首次出现时的位置,例如CenterScreen(居中显示在屏幕上)、WindowsDefaultLocation(默认Windows位置)等。
3. 常用方法
Show():以非模态方式显示窗体,即显示窗体后,程序会继续执行Show()之后的代码,用户可以在该窗体和其他窗体之间切换操作。ShowDialog():以模态方式显示窗体,在该窗体关闭之前,用户无法与应用程序的其他部分进行交互,程序会暂停执行ShowDialog()之后的代码,直到该窗体关闭。常用于显示对话框,如打开文件对话框、保存文件对话框等。Close():关闭当前窗体。通常会触发Closing和Closed事件。
4. 常用事件
Load:当窗体第一次加载到内存中时触发。通常在此事件处理程序中进行一些初始化操作,如加载数据、初始化控件状态等。Click:当用户在窗体的客户区域内单击鼠标左键时触发。Closing:在窗体关闭过程中,在关闭操作实际发生之前触发。可以在此事件处理程序中进行一些清理工作,或根据条件决定是否允许窗体关闭。例如,可以提示用户是否保存未保存的数据。Closed:在窗体关闭之后触发。此时窗体已经从内存中卸载,通常用于释放资源等操作。
5. 示例代码
以下是一个简单的WinForm应用程序示例,展示了 Form 类的一些基本用法:
using System;
using System.Windows.Forms;
namespace FormExample
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
this.Text = "我的第一个WinForm应用";
this.Size = new System.Drawing.Size(400, 300);
this.StartPosition = FormStartPosition.CenterScreen;
this.FormBorderStyle = FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
// 为Load事件添加处理程序
this.Load += MainForm_Load;
// 为Click事件添加处理程序
this.Click += MainForm_Click;
// 为Closing事件添加处理程序
this.Closing += MainForm_Closing;
}
private void MainForm_Load(object sender, EventArgs e)
{
MessageBox.Show("窗体已加载!");
}
private void MainForm_Click(object sender, EventArgs e)
{
MessageBox.Show("你点击了窗体!");
}
private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
DialogResult result = MessageBox.Show("确定要关闭窗体吗?", "确认关闭", MessageBoxButtons.YesNo);
if (result == DialogResult.No)
{
e.Cancel = true;
}
}
}
}
在上述示例中:
- 在构造函数中设置了窗体的标题、大小、起始位置、边框样式以及禁用了最大化按钮。
- 为
Load事件添加了处理程序,在窗体加载时弹出一个消息框。 - 为
Click事件添加了处理程序,当用户点击窗体时弹出消息框。 - 为
Closing事件添加了处理程序,在窗体关闭时弹出确认对话框,根据用户选择决定是否关闭窗体。
通过这些操作,可以看到 Form 类在创建用户界面和处理用户交互方面的强大功能。

浙公网安备 33010602011771号