本文档为《WinForm程序设计与实践》第四章第二节内容,详细介绍并演示了Windows窗体应用程序中常用的各类控件及其基本使用方法。
### C# WinForm 常用控件详解
#### 一、概述
在《WinForm程序设计与实践》第四章第二节里详细介绍了WinForm中常用的控件类型及其使用方法,这对初学者来说非常重要,因为它涵盖了构建基本用户界面所需的核心组件。
#### 二、控件基础
开发 WinForms 应用时,“控件”是构成用户界面的基本单元。它们用于接收用户的输入或展示数据。这些控件可以分为可视化的和不可视的两类:可视化控件是可以直接在界面上看到并与之交互的对象,而非可视化组件则是在后台工作且不显示于界面上。
#### 三、文本类控件
文本类控件主要包括以下几种:
##### 1. Label 控件
- **含义**:`Label` 控件用于界面中展示静态的文本信息。
- **常用属性和事件**:
- `Text` 属性:设置或获取显示在控件上的文本内容。
- `ForeColor` 属性:设定文本的颜色。
- `Font` 属性:调整字体样式以适应需要的效果。
- `AutoSize` 属性:自动调节控件大小,使其正好适合其中的文本内容。
- `Click` 事件:当用户点击此标签时触发。
##### 2. Button 控件
- **含义**:用于接收用户的单击操作,并执行相应的命令或引发一个事件。
- **常用属性和事件**:
- `Text` 属性:设置按钮上显示的文本内容。
- `ForeColor` 和 `BackColor` 属性:分别设定按钮上的文字颜色及背景色。
- `Enabled` 属性:控制按钮是否可以被用户操作,即启用或禁用状态。
- `Click` 事件:当用户点击该按钮时触发。
##### 3. TextBox 控件
- **含义**:用于收集和显示用户的文本输入信息。
- **常用属性和事件**:
- `Text` 属性:获取或设置文本框中的内容。
- `Multiline` 属性:启用多行输入功能,允许用户在单个控件中编写长段落。
- `PasswordChar` 属性:当显示密码时使用星号或其他字符代替实际的字母数字字符。
- `TextChanged` 事件:文本发生变化时触发。
##### 4. RichTextBox 控件
- **含义**:用于处理和编辑带格式化的文本,支持 RTF 格式文档。
- **常用属性和事件**:
- `Text` 属性:获取或设置文本框中的普通文本内容。
- `Rtf` 属性:读取或写入RTF格式的富文本段落档。
- 可以使用字体对话框 (`FontDialog`) 和颜色对话框 (`ColorDialog`) 来改变选定文字的颜色和样式。
- `SelectionFont` 和 `SelectionColor`:用于设置选中部分文本的显示属性,如字体类型及色彩。
- `TextChanged` 事件:当富文本段落档中的内容发生变化时触发。
#### 四、代码示例:用户登录界面
假设我们需要创建一个简单的用户登录功能。如果用户名和密码正确,则弹出“登录成功”的提示信息;否则显示错误消息通知。
```csharp
using System;
using System.Windows.Forms;
namespace Controls
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
if (txtName.Text == user && txtPassword.Text == 123)
MessageBox.Show(登录成功!);
else
MessageBox.Show(用户名或密码错误!);
}
private void btnReset_Click(object sender, EventArgs e)
{
foreach (Control item in this.Controls)
{
if (item is TextBox)
item.Text = ;
}
}
}
}
```
#### 五、代码示例:简历编辑器
接下来,我们将创建一个简单的简历编辑工具。该功能允许用户读取和保存 RTF 格式的文件。
```csharp
using System;
using System.Windows.Forms;
namespace ResumeEditor
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
richTextBox1.LoadFile(jianli.rtf, RichTextBoxStreamType.RichText);
}
private void btnSave_Click(object sender, EventArgs e)
{
richTextBox1.SaveFile(jianli.rtf, RichTextBoxStreamType.RichText);
}
}
}
```
#### 六、句柄概念
在 Windows 编程中,“句柄”是一个关键的概念。它是由整数构成的唯一标识符,用来指向系统中的特定对象(如窗口、按钮或图标等)。虽然从表面上看像指针一样,但实际上并不是内存