一、前言
C# WinForms(Windows Forms)是微软.NET Framework中的一个图形用户界面框架,用于创建功能丰富的Windows桌面应用程序。对于初学者来说,WinForms是学习C#桌面开发的最佳起点,因为它具有直观的拖拽式设计界面和简单的事件驱动编程模型。
本文将带领你从零开始创建第一个WinForms应用程序,即使你没有任何Windows桌面开发经验也能轻松上手。
二、开发环境准备
2.1 安装Visual Studio
- 下载并安装 Visual Studio Community(免费版本,这里推荐2022或2026,当然记得不要选择Build Tools),官方下载地址:点我
- 在安装时选择“.NET桌面开发”工作负载
- 确保包含Windows窗体设计器
2.2 创建新项目
1. 打开Visual Studio
2. 点击“创建新项目”
3. 选择“Windows窗体应用(.NET Framework)”或“Windows窗体应用”
4. 输入项目名称,如“MyFirstWinFormsApp”
5. 选择.NET版本(推荐.NET 8.0或更高版本)
三、创建第一个WinForms应用
3.1 理解项目结构
创建项目后,你会看到以下主要文件:
MyFirstWinFormsApp/
├── Program.cs // 应用程序入口点
├── Form1.cs // 主窗体代码文件
├── Form1.Designer.cs // 窗体设计器自动生成的代码
└── Form1.resx // 窗体资源文件
3.2 设计用户界面
让我们创建一个简单的应用:
-
打开Form1窗体设计器
- 在解决方案资源管理器中双击
Form1.cs - 会打开可视化设计界面
- 在解决方案资源管理器中双击
-
添加控件到窗体并修改:
- 从工具箱拖拽以下控件到窗体的合适位置:(如果没工具箱,请查看附录)
- 1个Label(标签),到左上角
- 1个TextBox(文本框),到右上角
- 2个Button(按钮),分别到TextBox的下面和右下角
- 1个ListBox(列表)到Label的下面
- 从工具箱拖拽以下控件到窗体的合适位置:(如果没工具箱,请查看附录)
-
设置控件属性:
// 在属性窗口中设置 - Form1.Text = "Simple Program" - button1.Text = "Add" - button2.Text = "About..." - label1.Text = "Notes:"这时你就会看到以下窗体(控件位置可能略有不同,但文本要对)
3.3 编写业务逻辑
在解决方案资源管理器中右键Form1.cs,选择’查看代码’,打开代码设计,并输入如下代码:
using System.Xml.Linq;
namespace WinFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(textBox1.Text) && !listBox1.Items.Contains(textBox1.Text))
listBox1.Items.Add(textBox1.Text);
}
private void btnAbout_Click(object sender, EventArgs e)
{
MessageBox.Show("This is example winform program.", "About");
}
}
}
保存后打开窗体设计器,点击选择button1(Add),点击属性下方的
然后在Click一项选择btnAdd_Click;同样的操作,选择button(About),选择那个小闪电,然后在Click一项选择btnAbout_Click,然后就大功告成了!接下来在顶部选择Release和Any CPU,然后按F5,Visual Studio会开始生成解决方案并运行,过一会你会看到:

那么恭喜你,你已经编译并运行成功了!
四、核心概念详解
4.1 事件驱动编程
WinForms采用事件驱动模型:
// 常见事件示例
private void Form1_Load(object sender, EventArgs e) { } // 窗体加载
private void TextBox_TextChanged(object sender, EventArgs e) { } // 文本变化
private void Button_Click(object sender, EventArgs e) { } // 按钮点击
4.2 常用控件介绍
| 控件 | 用途 | 常用属性 |
|---|---|---|
| Label | 显示文本 | Text, Font, ForeColor |
| TextBox | 输入文本 | Text, Multiline, PasswordChar |
| Button | 触发操作 | Text, Enabled, BackColor |
| ListBox | 列表数据 | Text, Font |
4.3 布局管理
// 使用TableLayoutPanel进行网格布局
private void InitializeLayout()
{
TableLayoutPanel panel = new TableLayoutPanel();
panel.ColumnCount = 3;
panel.RowCount = 4;
panel.Dock = DockStyle.Fill;
// 添加控件到指定单元格
panel.Controls.Add(textBox1, 0, 0);
panel.Controls.Add(comboBox1, 1, 0);
// ...
this.Controls.Add(panel);
}
六、附录
如果Visual Studio的工具箱默认不显示,那可以点击 视图(V) —> 工具箱(X),这时候工具箱就会出现了!

七、总结
通过本文的学习,你已经掌握了:
- ✅ 创建WinForms项目的基本流程
- ✅ 使用工具箱添加和配置控件
- ✅ 编写事件处理程序
- ✅ 实现基本的数据验证和异常处理
- ✅ 理解WinForms应用程序的结构
WinForms虽然是一个较老的框架,但在企业内部应用、工具软件等领域仍然广泛应用。掌握WinForms开发是学习更先进的WPF、MAUI等框架的良好基础。

425

被折叠的 条评论
为什么被折叠?



