本课学习目标
- 理解 Form(窗体)和 Control(控件)的关系。
- 认识 Windows Forms 中最常用的界面控件。
- 学会从 Toolbox 把控件加入窗体。
- 理解 Name 与 Text 属性的区别。
- 掌握 Size、Location、Font、ForeColor、BackColor、Enabled、Visible 等常用属性。
- 初步认识 TabIndex、Anchor 与 Dock 的布局作用。
- 完成一个“学生资料卡”界面设计练习。
3.1 什么是窗体和控件?
Windows Forms 应用可以把 Form 看成应用程序的“窗口”,把放在窗口中的 Button、Label、TextBox 等看成“控件”。
窗体
应用程序的主要窗口。窗体本身也有 Text、Size、BackColor 等属性,还可以包含其他控件。
控件
放在窗体上的界面元素,用来显示信息、接受输入或让用户执行操作。
例如,在第 2 课的问候程序中,Form1 是窗体;lblPrompt、txtName、btnGreet 和 lblResult 都是控件。
3.2 使用 Toolbox 加入控件
在 Windows Forms Designer 中,Toolbox(工具箱) 提供可放到窗体上的控件。若看不到 Toolbox,可选择 View → Toolbox。
打开 Form Designer
在 Solution Explorer 中双击 Form1.vb,确保显示的是设计画面。
打开 Toolbox
选择 View → Toolbox。当 Windows Forms Designer 处于活动状态时,会显示适用的控件。
加入控件
可以把控件从 Toolbox 拖到窗体上,也可以双击控件,让 Visual Studio 以默认大小加入窗体。
选择控件
在设计器中单击某个控件,Properties 窗口就会显示该控件可修改的属性。
3.3 常用 Windows Forms 控件
初学阶段最常使用的控件如下。你不需要一次记住全部,只要先理解每一种控件的用途。
显示说明、标题或结果文字。例如“请输入姓名:”。
让用户输入文字,例如姓名、地址或搜索关键字。
让用户执行操作,例如保存、计算、搜索或退出。
表示可以独立选择的选项,例如“订阅电子邮件”。
让用户从一组选项中选择一个,例如“男 / 女 / 其他”。
以下拉列表提供选择,也可视设置允许用户输入。
显示一个项目列表,让用户选择其中一个或多个项目。
显示图片,例如产品图片、头像或应用图标。
以表格方式显示资料。数据库课程会大量使用。
3.4 Properties 属性窗口
每个窗体和控件都有一组属性。属性决定对象的外观、大小、位置、名称和部分行为。Visual Studio 的 Properties Window(属性窗口) 是初学者最常使用的设计工具之一。
如果 Properties Window 没有显示,可以选择 View → Properties Window。选中不同控件时,属性窗口会自动切换到该控件。
3.5 Name 与 Text:初学者最容易混淆的两个属性
Name 与 Text 的用途完全不同。
| 属性 | 主要用途 | 示例 |
|---|---|---|
| Name | 代码中识别这个控件的名称。 | btnSave |
| Text | 通常是用户在界面上看到的文字。 | 保存 |
例如,一个按钮可以这样设置:
Name = btnSave
Text = 保存
以后写代码时,我们通常写:
btnSave.Enabled = False
这里使用的是 btnSave,也就是控件的 Name,不是按钮表面显示的“保存”。
3.6 控件命名建议
本教程采用简单、容易阅读的前缀命名方式:
| 控件 | 常用前缀 | 示例 |
|---|---|---|
| Label | lbl | lblStudentName |
| TextBox | txt | txtStudentName |
| Button | btn | btnSave |
| CheckBox | chk | chkNewsletter |
| RadioButton | rdo | rdoFullTime |
| ComboBox | cmb | cmbCourse |
| ListBox | lst | lstModules |
| PictureBox | pic | picPhoto |
3.7 十个最常用的属性
不同控件拥有的属性并不完全相同,但下面这些属性非常常见。
| 属性 | 作用 | 示例 |
|---|---|---|
| Name | 代码使用的控件名称。 | txtName |
| Text | 显示在窗体或控件上的文字。 | 学生姓名 |
| Size | 设置宽度和高度。 | 300, 40 |
| Location | 设置控件在父容器中的位置。 | 20, 60 |
| Font | 设置字体、大小与字型样式。 | Segoe UI, 11pt |
| ForeColor | 设置前景颜色,通常是文字颜色。 | DarkBlue |
| BackColor | 设置背景颜色。 | WhiteSmoke |
| Enabled | 决定用户是否可以操作控件。 | True / False |
| Visible | 决定控件运行时是否显示。 | True / False |
| TabIndex | 决定用户按 Tab 键时的焦点顺序。 | 0, 1, 2, 3... |
Enabled 与 Visible 有什么不同?
Enabled = False
控件仍然显示,但用户不能正常操作它。适合暂时禁用按钮或输入框。
Visible = False
控件不会显示给用户。适合暂时隐藏某些界面元素。
3.8 Anchor 与 Dock:让界面更适应窗体大小
如果用户把窗体放大,控件是否跟着移动或伸展?这就是 Anchor 与 Dock 常见的用途。
保持与指定边缘的距离
例如把 TextBox 锚定到 Left 和 Right,窗体变宽时,TextBox 可以跟着变宽。
停靠在父容器边缘或填满空间
例如让 Panel 停靠在 Top,或让某个控件使用 Fill 填满剩余区域。
3.9 实作:设计“学生资料卡”
继续使用 Visual Studio 2026,新建一个 Windows Forms 项目,项目名称可设为 StudentProfile2026。本练习暂时不写按钮事件,重点是熟悉窗体、控件和属性。
在 Form1 上加入下面的控件,并设置建议属性:
| 控件 | Name | Text / 说明 |
|---|---|---|
| Form | Form1 | Text = 学生资料卡 |
| Label | lblTitle | Text = 学生资料卡 |
| Label | lblName | Text = 学生姓名: |
| TextBox | txtName | 输入学生姓名 |
| Label | lblCourse | Text = 课程: |
| ComboBox | cmbCourse | 稍后可加入课程项目 |
| Label | lblEmail | Text = 电子邮件: |
| TextBox | txtEmail | 输入电子邮件 |
| CheckBox | chkNotify | Text = 接收课程通知 |
| Button | btnSave | Text = 保存资料 |
| Button | btnClear | Text = 清除 |
建议进一步调整
- 把窗体的 Text 改为“学生资料卡”。
- 将标题 Label 的 Font 调大并设为粗体。
- 让 TextBox 和 ComboBox 宽度保持一致。
- 让两个按钮的 Size 保持一致。
- 检查 TabIndex,使按 Tab 键时从姓名 → 课程 → 电子邮件 → 通知 → 保存 → 清除。
- 适当调整 Anchor,使输入控件在窗体变宽时仍能保持合理布局。
3.10 属性也可以在代码中修改
Properties Window 不是唯一的方法。大多数常用属性也可以通过 VB.NET 代码读取或改变。下面只是让你先看懂写法,本课不要求全部输入。
Me.Text = "学生资料卡"
lblTitle.Text = "学生资料卡"
txtName.Text = ""
btnSave.Enabled = True
btnClear.Visible = True
左边是“对象名称”,点号后面是“属性名称”,等号右边是要赋给属性的值。
第 4 课会正式学习:当用户点击按钮、改变选择或操作键盘时,程序如何通过事件执行代码。
3.11 初学者常见问题
改了 Name,但按钮文字没变
Name 是代码名称。要改变用户看到的按钮文字,应修改 Text 属性。
改了 Text,却找不到原来的代码名称
Text 不会自动改变 Name。代码仍然使用 Name 属性指定的名称。
控件排列不整齐
使用 Designer 的对齐辅助线,并让相关控件保持一致的间距与 Size。
窗体放大后布局很难看
检查 Anchor 和 Dock。固定坐标只能解决初始布局,不一定适合窗体大小变化。
3.12 小练习:改善学生资料卡
在完成基本界面后,再做以下改进:
- 增加一个 PictureBox,作为学生照片位置。
- 增加两个 RadioButton,例如“全日制”和“兼读制”。
- 把“保存资料”按钮的 Name 设置为 btnSave。
- 把“清除”按钮的 Name 设置为 btnClear。
- 调整所有控件的位置与大小,使整个界面看起来整齐一致。
本课复习
- Form 在 Windows Forms 应用中扮演什么角色?
- Label、TextBox 和 Button 分别适合做什么?
- Name 与 Text 有什么不同?
- Enabled = False 与 Visible = False 有什么不同?
- TabIndex 的作用是什么?
- Anchor 与 Dock 主要用来解决什么问题?
- 为什么控件名称最好不要长期保留为 Button1、TextBox1?