一、窗体切换
1. 核心属性 / 方法
| 方法 / 属性 | 作用 & 效果 |
|---|
Show() | 打开非模态窗体(新窗体打开后,原窗体仍可操作) |
ShowDialog() | 打开模态窗体(新窗体关闭前,原窗体不可操作,返回DialogResult表示操作结果) |
Hide() | 隐藏当前窗体(不释放资源,可通过Show()重新显示) |
Close() | 关闭当前窗体(默认释放资源,若为主窗体则程序退出) |
DialogResult | 模态窗体的返回结果(如DialogResult.OK/Cancel,用于判断用户操作) |
2. 事件
FormClosed:窗体关闭后触发(资源已释放)。FormClosing:窗体关闭过程中触发(可通过e.Cancel = true取消关闭)。
3. 示例(模态窗体传值)
// 主窗体打开模态窗体
private void btnOpenModal_Click(object sender, EventArgs e)
{
ModalForm modalForm = new ModalForm();
if (modalForm.ShowDialog() == DialogResult.OK)
{
// 获取模态窗体的返回值
labelResult.Text = modalForm.InputText;
}
}
// 模态窗体(设置返回值)
public class ModalForm : Form
{
public string InputText { get; set; }
private void btnConfirm_Click(object sender, EventArgs e)
{
InputText = txtInput.Text;
this.DialogResult = DialogResult.OK; // 设置返回结果
this.Close();
}
}
二、窗体传值
1. 构造函数传值(最常用)
2. 公共属性 / 方法传值
3. 委托 / 事件传值(反向传值)
- 效果:子窗体向父窗体传递数据(如子窗体关闭时回传结果)。
- 示例:
// 子窗体定义委托
public delegate void ValueReturnHandler(string value);
public event ValueReturnHandler OnValueReturn;
// 子窗体触发事件
private void btnClose_Click(object sender, EventArgs e)
{
OnValueReturn?.Invoke(txtInput.Text); // 回传数据
this.Close();
}
// 父窗体订阅事件
private void btnOpenChild_Click(object sender, EventArgs e)
{
ChildForm childForm = new ChildForm();
childForm.OnValueReturn += (value) =>
{
lblResult.Text = value; // 接收子窗体回传的数据
};
childForm.Show();
}
三、RadioButton(单选按钮)
1. 核心属性
| 属性名 | 作用 & 效果 |
|---|
Text | 设置按钮显示的文本(如 “男”)。 |
Checked | 布尔值,true表示选中,false表示未选中(默认false)。 |
GroupName | 同一容器内,GroupName相同的 RadioButton 为一组(组内互斥)。 |
AutoCheck | 布尔值,true表示点击时自动切换选中状态(默认true)。 |
2. 事件
3. 效果示例
- 同一
GroupName的 RadioButton,点击其中一个,其他会自动取消选中。
四、CheckBox(复选框)
1. 核心属性
| 属性名 | 作用 & 效果 |
|---|
Text | 设置复选框显示的文本(如 “篮球”)。 |
Checked | 布尔值,true表示选中,false表示未选中(默认false)。 |
ThreeState | 布尔值,true支持三态(Checked/Unchecked/Indeterminate),默认false。 |
CheckState | 选中状态(CheckState.Checked/Unchecked/Indeterminate,三态时可用)。 |
2. 事件
3. 效果示例
- 三态模式下,复选框会显示 “半选中” 状态(通常用于父选项表示子选项部分选中)。
五、ListBox(列表框)
1. 核心属性
| 属性名 | 作用 & 效果 |
|---|
Items | 列表项集合,可通过Add()/AddRange()/Remove()增删项。 |
SelectionMode | 选择模式:- None:不可选- One:单选(默认)- MultiSimple:多选(点击切换)- MultiExtended:多选(按住 Ctrl/Shift 选择) |
SelectedItem | 当前选中的单个项(SelectionMode=One时可用)。 |
SelectedItems | 当前选中的多个项(集合,MultiSimple/MultiExtended时可用)。 |
SelectedIndex | 当前选中项的索引(-1 表示无选中)。 |
2. 事件
3. 效果示例
MultiExtended模式下,按住 Ctrl 可选择不连续项,按住 Shift 可选择连续项。
六、ComboBox(下拉组合框)
1. 核心属性
| 属性名 | 作用 & 效果 |
|---|
Items | 下拉项集合,用法同 ListBox。 |
DropDownStyle | 下拉样式:- DropDown:可输入 + 下拉选择(默认)- DropDownList:仅下拉选择- Simple:始终展开(类似 ListBox) |
SelectedItem | 当前选中项(DropDownList模式下可用)。 |
Text | 输入框文本(DropDown模式下,可输入自定义内容)。 |
DropDownHeight | 下拉列表的高度(默认自适应)。 |
2. 事件
3. 效果示例
DropDown模式下,用户可输入不在Items中的内容;DropDownList模式下只能选择Items中的项。
七、ImageList(图像列表)
1. 核心属性
| 属性名 | 作用 & 效果 |
|---|
Images | 图像集合,通过属性面板添加图片(支持jpg/png/bmp)。 |
ImageSize | 图像的统一尺寸(如16×16/32×32),添加的图片会自动缩放到该尺寸。 |
ColorDepth | 图像颜色深度(如Depth32Bit,影响图片质量)。 |
2. 配合其他控件使用(示例:ListBox)
// 1. 拖入ImageList,添加2张图片(索引0:文件图标,索引1:文件夹图标)
// 2. 设置ListBox的ImageList属性为该ImageList
// 3. 给ListBox项设置图标
private void Form_Load(object sender, EventArgs e)
{
listBoxFiles.Items.Add("文档.txt");
listBoxFiles.Items.Add("图片文件夹");
// 设置第1项图标(索引0)
listBoxFiles.SetItemImage(0, 0);
// 设置第2项图标(索引1)
listBoxFiles.SetItemImage(1, 1);
}
3. 效果示例
- ListBox 项左侧会显示对应的图标,所有图标尺寸统一。
八、PictureBox(图片框)
1. 核心属性
| 属性名 | 作用 & 效果 |
|---|
Image | 显示的图片(可通过Image.FromFile(path)加载本地图片,或Image.FromStream(stream)加载网络图片)。 |
SizeMode | 图片显示模式:- Normal:默认(图片超出控件则裁剪)- StretchImage:拉伸适应控件(可能变形)- AutoSize:控件自适应图片尺寸- CenterImage:图片居中显示- Zoom:按比例缩放适应控件(不变形) |
BorderStyle | 边框样式(None/FixedSingle/Fixed3D)。 |
WaitOnLoad | 布尔值,true表示加载图片时阻塞 UI(默认false,异步加载)。 |
2. 事件
3. 效果示例
Zoom模式下,图片会按比例缩放,不会变形;StretchImage模式下可能拉伸变形。
九、NumericUpDown(数字上下控件)
1. 核心属性
| 属性名 | 作用 & 效果 |
|---|
Value | 当前数值(decimal类型,默认 0)。 |
Minimum | 最小值(默认 0)。 |
Maximum | 最大值(默认 100)。 |
Increment | 每次点击上下箭头的步长(默认 1)。 |
DecimalPlaces | 小数位数(默认 0,即整数)。 |
ThousandsSeparator | 是否显示千位分隔符(默认false)。 |
2. 事件
3. 效果示例
- 点击上下箭头,数值会按
Increment步长增减;直接输入非数字内容会自动过滤。
所有评论(0)