3. Form类 - Winform

在C# WinForm应用程序中,Form 类是用户界面的基础,代表一个窗口或对话框。它为应用程序提供了一个可视化的容器,用于承载各种控件,实现与用户的交互。

1. Form 类的主要特点和功能

  • 容器功能Form 可以容纳各种Windows Forms控件,如按钮(Button)、文本框(TextBox)、标签(Label)等,通过将这些控件添加到 Form 上,可以构建出复杂的用户界面。
  • 窗口管理:它负责管理窗口的外观和行为,包括设置窗口的标题、大小、位置、边框样式、最大化最小化按钮状态等。例如,可以通过设置 FormBorderStyle 属性来改变窗口的边框样式,如无边框、固定单边框、可调整大小边框等。
  • 事件处理Form 类支持多种事件,用于响应用户操作或系统事件。常见的事件包括 Load(在窗体加载时触发)、Click(当用户点击窗体时触发)、ClosingClosed(在窗体关闭过程中及关闭后触发)等。通过为这些事件编写处理程序,可以实现各种功能逻辑。

2. 常用属性

  • Text:设置或获取显示在窗体标题栏中的文本。
  • Size:获取或设置窗体的大小,以像素为单位,由宽度和高度组成。
  • Location:获取或设置窗体左上角相对于其父容器(通常是屏幕)的坐标位置。
  • FormBorderStyle:指定窗体的边框样式,取值包括 None(无边界)、FixedSingle(固定单边框,不能调整大小)、FixedDialog(固定对话框样式,不能调整大小)、Sizable(可调整大小的边框)等。
  • StartPosition:设置窗体首次出现时的位置,例如 CenterScreen(居中显示在屏幕上)、WindowsDefaultLocation(默认Windows位置)等。

3. 常用方法

  • Show():以非模态方式显示窗体,即显示窗体后,程序会继续执行 Show() 之后的代码,用户可以在该窗体和其他窗体之间切换操作。
  • ShowDialog():以模态方式显示窗体,在该窗体关闭之前,用户无法与应用程序的其他部分进行交互,程序会暂停执行 ShowDialog() 之后的代码,直到该窗体关闭。常用于显示对话框,如打开文件对话框、保存文件对话框等。
  • Close():关闭当前窗体。通常会触发 ClosingClosed 事件。

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 类在创建用户界面和处理用户交互方面的强大功能。

posted @ 2025-11-30 14:46  hycedu  阅读(2)  评论(0)    收藏  举报