C# Windows Forms 开发实战教程:从入门到进阶控件应用
C# Windows Forms 开发实战教程
掌握控制台应用后,下一步是使用 Visual Studio 的 Windows Forms 创建丰富桌面体验。本指南带你完成每个阶段——从项目设置到添加控件、连接事件,甚至引入 TreeView 和 PictureBox 等高级组件。
Windows Forms 基础
Windows Forms 应用原生运行在桌面机器上。包含可视化布局和一组控件(标签、文本框、列表框等)供用户交互。
下面是一个用 C# 创建的简单登录窗体:

示例关键元素:
- 描述相邻文本框的标签控件。
- 用户名和密码输入的文本框。
- 触发认证逻辑的按钮。
C# Hello World
创建基本“Hello World”Windows 窗体以理解 Visual Studio 工作流。
- 打开 Visual Studio 选择 File > New > Project。

- 选择 Windows 类别下的 Windows Forms App (.NET Framework)。项目命名为
DemoApplication点击 OK。
- 解决方案资源管理器显示两个文件:
Form1.cs– 可视化窗体。Program.cs– 应用入口点。
- 从工具箱拖拽 Label 到窗体,设置
Text属性为Hello World。
- 运行应用 – 窗体显示“Hello World”。

向窗体添加控件
下面分步指南组装用户信息窗体,采集姓名、地址、城市、性别和课程偏好。
GroupBox – 逻辑分区
拖拽 GroupBox 到窗体,将 Text 属性改为 User Details。

Label
在 GroupBox 内放置两个标签:“Name” 和 “Address”。

TextBox
添加两个文本框,命名为 txtName 和 txtAddress。

ListBox – 城市选择
插入 ListBox 命名为 lstCity,填充 “Mumbai”、“Bangalore”、“Hyderabad”。

RadioButton – 性别
放置两个 RadioButton:rdMale(文本:Male)和 rdFemale(文本:Female)。

CheckBox – 课程偏好
添加两个 CheckBox:chkC(文本:C#)和 chkASP(文本:ASP.NET)。

Button – 提交
放置 Button 命名 btnSubmit,Text 设为 “Submit”。

控件事件处理
事件响应用户操作。下面两个常见场景。
ListBox 选择改变
双击 lstCity 生成事件处理器。添加代码:
private void lstCity_SelectedIndexChanged(object sender, EventArgs e) {
var selected = lstCity.SelectedItem?.ToString();
if (!string.IsNullOrEmpty(selected))
MessageBox.Show($"You selected: {selected}");
}
运行应用,选择城市时弹出消息框。
Button 点击 – 提交
双击 btnSubmit 创建处理器并插入:
private void btnSubmit_Click(object sender, EventArgs e) {
var name = txtName.Text;
var address = txtAddress.Text;
MessageBox.Show($"Name: {name}\nAddress: {address}");
}
点击“Submit”显示输入详情。
TreeView 和 PictureBox 控件
TreeView – 分层数据
拖拽 TreeView 到窗体。用 Nodes 属性添加根节点 “Root”,再添加子节点 “Label”、“Button”、“CheckBox”。

PictureBox – 显示图片
插入 PictureBox,设置 SizeMode 为 Zoom,通过 Image 属性指定图片。

总结
- Windows Forms 实现直接运行在用户机器上的桌面应用。
- 从工具箱添加标签、文本框、列表框、单选按钮、复选框等控件。
- TreeView 和 PictureBox 等高级组件扩展 UI 能力。
- 事件处理器响应用户交互,按钮点击和列表选择最常见。
C语言
- 在树莓派 3 上扩展 GoPiGo v2 的 Windows 10 IoT Core 应用
- C++ for 循环详解:语法、执行流程与实战示例
- 掌握 C++ switch-case:语法、用法与实战示例
- C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
- C++ std::stack 完全指南:核心操作、实战示例与 STL 应用
- C++ 结构体详解:定义、初始化、指针、函数参数与局限性
- C++ 类与对象实战指南:封装、构造函数、析构函数与访问控制
- 掌握 C++ std::list:语法、函数与实战示例
- C# 抽象类实战教程:从定义到派生的完整代码示例
- C# 集合实战教程:ArrayList、Stack、Queue、Hashtable 等核心类型全解析
- C 语言 calloc() 详解:零初始化动态分配原理与实战案例
- Python collections.Counter:高效计数、更新与算术运算