目录

WinForm 窗体与控件开发详解

本章节详细讲解 C# WinForm 开发中窗体(Form)的基础操作、属性设置、MDI 多窗体应用、窗体继承以及常用控件的使用。

Form 窗体基础

窗体概念与基本操作

WinForm 是 Windows 窗体应用程序的核心。

窗体的常用属性

①-0:窗体的显示与隐藏

// 打开窗口
Form2 form2 = new Form2();
form2.Show(); // 显示窗体
 
// 隐藏窗口 (haɪ d)
// 隐藏当前窗体,但不会关闭它。窗体仍在内存中,可再次调用 Show() 显示。
this.Hide();
 
// 关闭窗口
// 关闭当前窗体并释放资源。内存移除,若需显示需重新 new 实例。
this.Close();

①-1 ~ ①-5:外观与布局属性

属性名 说明 常用值/备注
Icon 窗体图标 用于更换左上角图标
FormBorderStyle 边框样式 可用于隐藏标题栏或禁止调整大小
StartPosition 开始显示位置 Manual: 手动<br>CenterScreen: 屏幕居中 (sen tə)<br>WindowsDefaultLocation: Windows默认位置<br>CenterParent: 父窗体居中
Size 窗体大小 (saɪz) 可通过代码设置或鼠标拉伸
BackgroundImage 背景图片 (bækɡ raʊn d ɪ mɪdʒ)
BackgroundImageLayout 背景布局 None: 无 (nʌn)<br>Tile: 平铺<br>Center: 居中<br>Stretch: 拉伸/铺满 (s tre tʃ)<br>Zoom: 按比例缩放 (zuːm)

窗体的常用事件

可以通过双击窗体或属性面板的“闪电”图标添加事件。

MDI 窗体 (多文档界面)

①-0:简介

MDI (Multiple Document Interface) 允许在一个主窗体(父窗体)内部打开多个子窗体。

①-1 & ①-2:父子窗体设置

1. 父窗体设置: 将主窗体的属性 `IsMdiContainer` 设置为 `true`。

备注:kənˈteɪ nə (容器)

2. 子窗体设置: 在代码中打开子窗体时,必须指定其 `MdiParent` 属性。

private void Form1_Load(object sender, EventArgs e)
{
    MDI_1 mdi_1 = new MDI_1();
    mdi_1.MdiParent = this; // 关键:设置父容器为当前窗体
    mdi_1.Show();
 
    // 可以打开多个子窗体
    MDI_2 mdi_2 = new MDI_2();
    mdi_2.MdiParent = this;
    mdi_2.Show();
}

①-3 & ①-4:MDI 窗体排列布局

使用 `LayoutMdi` 方法来自动排列子窗体。

排列方式 枚举值 说明
水平平铺 `MdiLayout.TileHorizontal` (taɪl hɒrɪˈzɒntl)
垂直平铺 `MdiLayout.TileVertical` (taɪl vɜːtɪ kl)
层叠排列 `MdiLayout.Cascade` (kæˈskeɪd)

代码示例

// 水平平铺
private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
    this.LayoutMdi(MdiLayout.TileHorizontal);
}
 
// 层叠
private void 叠层ToolStripMenuItem_Click(object sender, EventArgs e)
{
    this.LayoutMdi(MdiLayout.Cascade);
}

继承窗体 (Inherit Form)

①-1:概念

Inherit (ɪnˈhe rɪ t)。

白话解释:类似 HMI 的底层窗口。把底层窗口(基类)当作公共模板,其他窗口继承它之后,天然拥有基类的所有控件和代码,实现复用。

①-2:创建继承窗体

方法一:编程方式(推荐) 修改代码中的继承关系。

// 原代码
public partial class Form_Param : Form { ... }
 
// 修改后:让 Form_Param 继承自 Form_MAX
public partial class Form_Param : Form_MAX { ... }
效果:Form_Param 窗体中将自动出现 Form_MAX 中的所有内容。

方法二:选择器方式 项目 → 添加新项 → Windows Forms → 继承的窗体 → 选择基类窗体。

①-3:修改继承控件的属性

默认情况下,基类窗体中的控件在子窗体中是锁定的(灰色,不可编辑)。

解决方法: 1. 打开基类窗体(父窗体)的设计器。 2. 选中要开放修改权限的控件。 3. 将属性 Modifiers (mɒ dɪ faɪ z / 修饰符) 改为 PublicProtected。 4. 重新生成项目。现在子窗体即可修改该控件属性。

WinForm 控件

控件基本常识

常用快捷键绑定

功能 属性设置位置 说明
回车键触发 窗体属性 `AcceptButton` 用户按 Enter 键等于点击了指定的按钮
ESC键触发 窗体属性 `CancelButton` 用户按 Esc 键等于点击了指定的按钮
// 代码方式设置快捷键绑定
private void MAX_Load(object sender, EventArgs e)
{
    this.AcceptButton = button1; // 回车触发 button1
    this.CancelButton = button2; // ESC触发 button2
}

常用文本控件

控件名称 中文名 用途
Label 标签 用于显示文本信息,用户不可编辑。
Button 按钮 用于触发点击事件。
TextBox 文本框 最常用的文本输入控件。
RichTextBox 富文本框 支持格式化文本(颜色、字体)的输入与显示。