目录
1.Button(按钮控件)
介绍说明:
用于触发用户交互操作(如提交、保存),是最基础的交互控件。
使用模板:
Button btnSubmit = new Button();
btnSubmit.Text = "提交";
btnSubmit.Click += (sender, e) => { /* 点击事件逻辑 */ };
this.Controls.Add(btnSubmit);
注意事项:
设置TabIndex确保键盘导航顺序。
禁用时设置Enabled = false,避免无效点击。
案例:
1.登录界面的"登录"按钮,触发账号密码验证。
2.数据编辑页面的"保存"按钮,提交表单数据。
2.Label(标签控件)
介绍说明:
用于显示静态文本(如标题、提示信息等),不支持用户输入内容。
使用模板:
Label lblTitle = new Label();
lblTitle.Text = "用户信息";
lblTitle.Font = new Font("微软雅黑",12,FontStyle.Bold);
this.Controls.Add(lblTitle);
注意事项:
避免设置过大文本导致换行,可以调整AutoSize或MaximumSize。
动态内容可通过Text属性实时更新。
案例:
1.表单中的"用户名:"提示文本。
2.状态提示(如"加载中...")。
3.TextBox(文本框控件)
介绍说明:
用于接收用户输入的文本(如账号、密码等)。
使用模板:
TextBox txtUsername = new TextBox();
txtUsername.PlaceholderText = "请输入用户名";
txtUsername.PasswordChar = '*';
this.Controls.Add(txtUsername);
注意事项:
密码输入需要设置PasswordChar,避免明文显示。
限制输入长度可以设置MaxLength。
案例:
1.登录界面的用户名 / 密码输入框。
2.搜索功能的关键输入框。
4.ComboBox(下拉列表控件)
介绍说明:
提供预定义选项的下拉选择框,节省界面空间。
使用模板:
ComboBox cboCity = new ComboBox();
cboCity.Items.AddRange(new string[] { "北京", "上海", "广州" });
cboCity.SelectedIndex = 0; // 默认选中第一项
this.Controls.Add(cboCity);
注意事项:
动态添加选项时调用Items.Add()或DataSource绑定数据。
设置DropDownStyle控制展开方式(如DropDownList仅允许选择)。
案例:
1.注册界面的"城市选择"下拉框。
2.筛选功能的"分类选择"下拉框。
5.ListBox(列表框控件)
介绍说明:
显示多个选项,支持单选或多选。
使用模板:
ListBox listBox = new ListBox();
listBox.Items.AddRange(new string[] { "选项1", "选项2", "选项3" });
listBox.SelectionMode = SelectionMode.MultiSimple; // 允许多选
this.Controls.Add(listBox);
注意事项:
多选时通过SelectedItems获取所有选中项。
内容过多时设置ScrollAlwaysVisible = true显示滚动条。
案例:
1.文件列表展示(如"已上传文件")。
2.权限选择(如"用户角色"多选)。
6.CheckBox(复选框控件)
介绍说明:
用于独立选项的勾选(如"同意协议"),支持多选。
使用模板:
CheckBox chkAgree = new CheckBox();
chkAgree.Text = "我同意用户协议";
chkAgree.CheckedChanged += (sender, e) => {
btnSubmit.Enabled = chkAgree.Checked; // 勾选后启用提交按钮
};
this.Controls.Add(chkAgree);
注意事项:
避免嵌套复杂逻辑,通过Checked属性判断状态。
可通过ThreeState属性实现三态(勾选 / 未勾选 / 不确定)。
案例:
1.注册页面的"同意协议"勾选框。
2.设置页面的"接收通知"选项。
7.RadioButton(单选按钮控件)
介绍说明:
用于互斥选项的选择(如"男 / 女"),需要配合GroupBox或Panel分组。
使用模板:
GroupBox groupGender = new GroupBox { Text = "性别" };
RadioButton rdoMale = new RadioButton { Text = "男", Checked = true, Location = new Point(10, 20) };
RadioButton rdoFemale = new RadioButton { Text = "女", Location = new Point(10, 40) };
groupGender.Controls.Add(rdoMale);
groupGender.Controls.Add(rdoFemale);
this.Controls.Add(groupGender);
注意事项:
必须放入同一容器(如GroupBox)才能实现互斥。
通过Checked属性判断选中状态。
案例:
1.个人信息页面的"性别选择"。
2.设置页面的"主题模式"选择(如"浅色 / 深色")。
8.PictureBox(图片框控件)
介绍说明:
用于显示图片(如Logo、产品图),支持常见格式(JPG/PNG/BMP)。
使用模板:
PictureBox pictureBox = new PictureBox();
pictureBox.Image = Properties.Resources.Logo; // 加载资源图片
pictureBox.SizeMode = PictureBoxSizeMode.StretchImage; // 拉伸适应控件大小
this.Controls.Add(pictureBox);
注意事项:
避免直接加载大尺寸图片,建议压缩后使用。
通过ImageLocation属性加载网络图片(需要处理异步)。
案例:
1.登陆界面的"公司Logo"展示。
2.商品详情页面的"产品图片"轮播。
9.Panel(面板控件)
介绍说明:
用于分组管理控件(如表单区域、功能模块等),支持滚动和边框。
使用模板:
Panel panelForm = new Panel();
panelForm.BorderStyle = BorderStyle.FixedSingle; // 显示边框
panelForm.AutoScroll = true; // 内容超出时显示滚动条
// 向面板中添加其他控件(如TextBox、Button)
panelForm.Controls.Add(txtUsername);
this.Controls.Add(panelForm);
注意事项:
作为容器管理控件布局,避免直接在Form上堆砌控件。
配合Dock或Anchor属性实现自适应布局。
案例:
1.复杂表单的"个人信息"分组面板。
2.可折叠的"高级搜索"面板。
10.GroupBox(分组框控件)
介绍说明:
带标题的面板控件,用于逻辑分组(如"性别选择"、"支付方式"等)。
使用模板:
GroupBox groupPayment = new GroupBox();
groupPayment.Text = "支付方式";
// 向分组框中添加RadioButton等控件
groupPayment.Controls.Add(rdoWeChat);
groupPayment.Controls.Add(rdoAlipay);
this.Controls.Add(groupPayment);
注意事项:
标题通过Text属性设置,位置默认在左上角。
与Panel的区别:GroupBox自带标题,Panel更灵活(如滚动、边框样式)。
案例:
1.订单页面的"支付方式选择"分组。
2.问卷页面的"满意度评分"分组。
11.TabControl(选项卡控件)
介绍说明:
通过多标签页组织不同功能模块,提升界面利用率。
使用模板:
TabControl tabControl = new TabControl();
TabPage tabPage1 = new TabPage("基本信息");
TabPage tabPage2 = new TabPage("高级设置");
// 向标签页中添加控件
tabPage1.Controls.Add(txtName);
tabPage2.Controls.Add(chkAdvanced);
tabControl.TabPages.Add(tabPage1);
tabControl.TabPages.Add(tabPage2);
this.Controls.Add(tabControl);
注意事项:
通过TabPages集合管理标签页。
设置SelectedIndex切换当前激活的标签页。
案例:
1.设置页面的"基本设置 / 高级设置"标签页。
2.数据管理页面的"列表 / 详情"标签页。
12.DataGridView(数据网格控件)
介绍说明:
以表格形式展示数据集,支持排序、编辑、分页。
使用模板:
DataGridView dataGridView = new DataGridView();
dataGridView.DataSource = GetUserData(); // 绑定数据源(如DataTable)
dataGridView.AutoGenerateColumns = true; // 自动生成列
this.Controls.Add(dataGridView);
注意事项:
大数据量时启动虚拟模式(VirtualMode = true)提升性能。
通过Columns集合自定义列样式(如隐藏列、设置列宽等)。
案例:
1.用户管理页面的"用户列表"展示。
2.订单管理页面的"订单数据"表格。
13.TreeView(树视图控件)
介绍说明:
展示层级结构数据(如文件目录、组织架构等)。
使用模板:
TreeView treeView = new TreeView();
TreeNode rootNode = new TreeNode("根节点");
rootNode.Nodes.Add("子节点1");
rootNode.Nodes.Add("子节点2");
treeView.Nodes.Add(rootNode);
this.Controls.Add(treeView);
注意事项:
通过Nodes集合递归添加子节点。
设置ShowPlusMinus = true显示展开 / 折叠按钮。
案例:
1.文件资源管理器的"目录树"。
2.组织架构页面的"部门层级"展示。
14.ListView(列表视图控件)
介绍说明:
以多种视图(大图标、列表、详情等)展示数据,支持分组和排序。
使用模板:
ListView listView = new ListView();
listView.View = View.Details; // 详情视图
listView.Columns.Add("文件名", 150); // 添加列
listView.Columns.Add("大小", 80);
listView.Items.Add(new ListViewItem(new string[] { "文档1.txt", "10KB" }));
this.Controls.Add(listView);
注意事项:
详情视图需要先添加列(Columns)再添加项。
大图标视图通过LargeImageList设置图标。
View属性的4种模式:1.Details:详细列表(带表头,最常用) 2.List:简单列表(无列表,一行一条) 3.LargeIcon:大图标模式 4.SmallIcon:小图标模式。
案例:
1.文件管理器的"文件列表"(详情视图)。
2.图片浏览器的"图片缩略图"(大图标视图)。
15.DateTimePicker(日期时间选择器)
介绍说明:
快速选择日期或时间,支持自定义格式。
使用模板:
DateTimePicker dateTimePicker = new DateTimePicker();
dateTimePicker.Format = DateTimePickerFormat.Short; // 短日期格式(如2023-10-01)
dateTimePicker.Value = DateTime.Now; // 默认当前时间
this.Controls.Add(dateTimePicker);
注意事项:
通过Format属性设置显示格式(如Long显示星期)。
设置ShowUpDown = true启用上下箭头调整日期。
案例:
1.预约页面的"日期选择"。
2.数据筛选的"开始时间 / 结束时间"选择。
16.MonthCalendar(月历控件)
介绍说明:
以月历形式展示日期,支持选择单个或多个日期。
使用模板:
MonthCalendar monthCalendar = new MonthCalendar();
monthCalendar.MaxSelectionCount = 7; // 最多选择7天
this.Controls.Add(monthCalendar);
注意事项:
通过SelectionStart和SelectionEnd获取选中日期范围。
避免在小尺寸界面使用(控件较大)。
案例:
1.日程安排页面的"日期选择器"。
2.统计页面的"月份数据筛选"。
17.ProgressBar(进度条控件)
介绍说明:
显示任务进度(如文件上传、数据加载等),提升用户等待体验。
使用模板:
ProgressBar progressBar = new ProgressBar();
progressBar.Minimum = 0;
progressBar.Maximum = 100;
progressBar.Value = 50; // 当前进度50%
this.Controls.Add(progressBar);
注意事项:
配合后台线程更新进度(避免阻塞UI)。
设置Style = ProgressBarStyle.Marquee实现无限滚动(如未知进度)。
案例:
1.文件上传页面的"上传进度"显示。
2.数据导入页面的"导入进度"显示。
18.TrackBar(跟踪条控件)
介绍说明:
通过拖动滑块选择数值(如音量调节、亮度调节等)。
使用模板:
TrackBar trackBar = new TrackBar();
trackBar.Minimum = 0;
trackBar.Maximum = 100;
trackBar.Value = 50;
trackBar.Scroll += (sender, e) => {
lblVolume.Text = $"音量:{trackBar.Value}%"; };
this.Controls.Add(trackBar);
注意事项:
通过Scroll事件实时获取滑块值。
设置TickFrequency控制刻度间隔。
案例:
1.视频播放器的"音量调节"滑块。
2.图像编辑工具的"亮度调节"滑块。
19.NumericUpDown(数值上下控件)
介绍说明:
通过上下箭头调整数值,限制输入范围。
使用模板:
NumericUpDown numericUpDown = new NumericUpDown();
numericUpDown.Minimum = 1;
numericUpDown.Maximum = 100;
numericUpDown.Value = 10; // 默认值
this.Controls.Add(numericUpDown);
注意事项:
通过Value属性获取当前数值。
设置Increment控制每次调整的步长。
案例:
1.购物车页面的"商品数量"调整。
2.设置页面的"字体大小"调整。
20.DomainUpDown(域名上下控件)
介绍说明:
类似NumericUpDown,但用于字符串选项的切换(如"com / cn / net")。
使用模板:
DomainUpDown domainUpDown = new DomainUpDown();
domainUpDown.Items.AddRange(new string[] { "com", "cn", "net" });
domainUpDown.SelectedIndex = 0;
this.Controls.Add(domainUpDown);
注意事项:
通过Items集合添加字符串选项。
设置Wrap属性控制是否循环切换(如最后一项后回到第一项)。
案例:
1.域名注册页面的"后缀选择"。
2.设置页面的"语言选择"(如"中文 / 英文 / 日文")。
21.Timer(定时器控件)
介绍说明:
用于定时触发事件(如轮播图切换、数据刷新),支持毫秒级精度。
使用模板:
Timer timer = new Timer();
timer.Interval = 1000; // 间隔1秒(1000毫秒)
timer.Tick += (sender, e) => {
// 定时执行的逻辑(如更新时间、切换图片)
lblTime.Text = DateTime.Now.ToString("HH:mm:ss");
};
timer.Start(); // 启动定时器
注意事项:
避免在Tick事件中执行耗时操作,防止UI卡顿。
不需要时调用Stop()停止定时器,释放资源。
案例:
1.时钟应用的"实时时间更新"。
2.轮播图的"自动切换图片"功能。
22.OpenFileDialog(打开文件对话框)
介绍说明:
用于选择文件(如打开文档、图片),支持筛选文件类型。
使用模板:
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "图片文件|*.jpg;*.png|所有文件|*.*"; // 文件类型筛选
openFileDialog.Title = "选择图片";
if (openFileDialog.ShowDialog() == DialogResult.OK) {
string filePath = openFileDialog.FileName; // 获取选中文件路径
pictureBox.Image = Image.FromFile(filePath);
}
注意事项:
筛选器格式为"描述|*.ext1;*ext2",多个类型用 | 分割。
大文件需要异步加载,避免阻塞UI。
案例:
1.图片编辑器的"打开图片"功能。
2.文档阅读器的"打开文档"功能。
23.SaveFileDialog(保存文件对话框)
介绍说明:
用于保存文件(如导出数据、保存编辑内容),支持自定义文件名和格式。
使用模板:
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "文本文件|*.txt|Excel文件|*.xlsx";
saveFileDialog.FileName = "导出数据"; // 默认文件名
if (saveFileDialog.ShowDialog() == DialogResult.OK) {
string savePath = saveFileDialog.FileName;
File.WriteAllText(savePath, "导出内容"); // 保存文件
}
注意事项:
设置OverwritePrompt = true(默认)防止覆盖已有文件。
保存前需要确认文件格式是否正确。
案例:
1.数据报表的"导出为Excel"功能。
2.文本编辑器的"另存为"功能。
24.ColorDialog(颜色选择对话框)
介绍说明:
用于选择颜色(如设置字体颜色、背景色)。
使用模板:
ColorDialog colorDialog = new ColorDialog();
if (colorDialog.ShowDialog() == DialogResult.OK) {
lblText.ForeColor = colorDialog.Color; // 设置文本颜色
}
注意事项:
通过Color属性获取选中颜色。
设置AllowFullOpen = true允许用户自定义颜色。
案例:
1.文本编辑器的"字体颜色设置"。
2.绘图工具的"画笔颜色选择"。
25.FontDialog(字体选择对话框)
介绍说明:
用于选择字体(如设置文本的字体、大小、样式)。
使用模板:
FontDialog fontDialog = new FontDialog();
if (fontDialog.ShowDialog() == DialogResult.OK) {
lblText.Font = fontDialog.Font; // 设置文本字体
}
注意事项:
通过Font属性获取选中字体。
设置ShowColor = true同时选择字体颜色。
案例:
1.文字处理软件的"字体设置"功能。
2.界面个性化设置的"标题字体选择"。
26.PrintDialog(打印对话框)
介绍说明:
用于打印文档(如打印报表、图片),支持选择打印机和设置打印参数。
使用模板:
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK) {
// 执行打印逻辑(需配合PrintDocument控件)
PrintDocument pd = new PrintDocument(); pd.PrintPage += (sender, e) => { e.Graphics.DrawString("打印内容", new Font("Arial", 12), Brushes.Black, 100, 100); };
pd.Print();
}
注意事项:
需要配合PrintDocument控件实现打印内容绘制。
打印前确认打印机状态(是否在线)。
案例:
1.订单系统的"打印订单"功能。
2.图片查看器的"打印图片"功能。
27.ToolTip(工具提示控件)
介绍说明:
用于鼠标悬停时显示提示信息(如控件功能说明)。
使用模板:
ToolTip toolTip = new ToolTip();
toolTip.SetToolTip(btnSubmit, "点击提交表单"); // 为按钮设置提示
toolTip.ToolTipTitle = "提示"; // 提示标题
toolTip.IsBalloon = true; // 气泡样式
注意事项:
通过SetToolTip为控件绑定提示文本。
避免提示文本过长,保持简洁。
案例:
1.复杂界面的"控件功能说明"提示。
2.表单输入框的"格式要求"提示(如"请输入11位手机号")。
28.StatysStrip(状态栏控件)
介绍说明:
用于显示应用状态信息(如加载进度、登陆状态),支持多面板布局。
使用模板:
StatusStrip statusStrip = new StatusStrip();
ToolStripStatusLabel lblStatus = new ToolStripStatusLabel();
lblStatus.Text = "就绪";
statusStrip.Items.Add(lblStatus);
this.Controls.Add(statusStrip);
注意事项:
通过ToolStripStatusLabel添加状态项。
动态更新状态时直接修改Text属性。
案例:
1.文本编辑器的"字数统计"状态栏。
2.下载工具的"下载进度"状态栏。
29.MenuStrip(菜单控件)
介绍说明:
用于创建应用程序菜单(如文件、编辑、帮助),支持多级子菜单。
使用模板:
MenuStrip menuStrip = new MenuStrip();
ToolStripMenuItem menuFile = new ToolStripMenuItem("文件");
ToolStripMenuItem menuNew = new ToolStripMenuItem("新建");
menuNew.Click += (sender, e) => { /* 新建文件逻辑 */ };
menuFile.DropDownItems.Add(menuNew);
menuStrip.Items.Add(menuFile);
this.Controls.Add(menuStrip);
注意事项:
通过DropDownItems添加子菜单。
设置ShortcutKeys为菜单项绑定快捷键(如menuNew.ShortcutKeys = Keys.Ctrl | Keys.N)。
案例:
1.文本编辑器的"文件 / 编辑 / 菜单"菜单。
2.绘图软件的"工具 / 帮助"菜单。
30.ContextMenuStrip(上下文菜单控件)
介绍说明:
用于右键点击时弹出的菜单(如复制、粘贴、删除),支持自定义菜单顶。
使用模板:
ContextMenuStrip contextMenu = new ContextMenuStrip();
ToolStripMenuItem menuCopy = new ToolStripMenuItem("复制");
menuCopy.Click += (sender, e) => { /* 复制逻辑 */ };
contextMenu.Items.Add(menuCopy);
dataGridView.ContextMenuStrip = contextMenu; // 绑定到DataGridView
注意事项:
通过ContextMenuStrip属性为控件绑定上下文菜单。
根据当前选中内容动态调整菜单单项(如禁用"粘贴"当前剪贴板为空时)。
案例:
1.文本框的"复制 / 粘贴 / 剪切"右键菜单
2.DataGridView的"删除行 / 导出数据"右键菜单。
31.ToolStrip(工具栏控件)
介绍说明:
用于创建快捷操作工具栏(如新建、保存、撤销按钮),支持图标和文本。
使用模板:
ToolStrip toolStrip = new ToolStrip();
ToolStripButton btnNew = new ToolStripButton("新建");
btnNew.Image = Properties.Resources.NewIcon; // 绑定图标
btnNew.Click += (sender, e) => { /* 新建逻辑 */ };
toolStrip.Items.Add(btnNew);
this.Controls.Add(toolStrip);
注意事项:
通过ToolStripButton添加工具栏按钮。
图标建议使用16x16或32x32像素的PNG图片。
案例:
1.文字处理软件的"格式工具栏"(加粗、斜体、下划线)。
2.图像编辑器的"绘图工具栏"(画笔、橡皮擦、形状)。
32.NotifyIcon(系统托盘图标控件)
介绍说明:
用于在系统托盘显示图标(如后台运行程序的状态提示),支持右键菜单。
使用模板:
NotifyIcon notifyIcon = new NotifyIcon();
notifyIcon.Icon = SystemIcons.Information; // 默认使用系统托盘图标
notifyIcon.Text = "我的应用"; // 悬停提示
notifyIcon.Visible = true; // 显示托盘图标
// 右键菜单
ContextMenuStrip contextMenu = new ContextMenuStrip();
contextMenu.Items.Add("退出", null, (sender, e) => Application.Exit());
notifyIcon.ContextMenuStrip = contextMenu;
注意事项:
程序退出前需要调用Dispose()释放资源。
通过ShowBalloonTip()显示气泡提示(如"操作成功")。
案例:
1.即时通讯软件的"后台运行托盘图标"。
2.下载工具的"下载完成通知"。
33.WebBrowser(网页浏览器控件)
介绍说明:
用于在WinForm中嵌入网页(如显示帮助文档、加载在线内容)。
使用模板:
WebBrowser webBrowser = new WebBrowser();
webBrowser.Navigate("https://www.baidu.com"); // 加载网页
this.Controls.Add(webBrowser);
注意事项:
需要处理网页加载事件(如DocumentCompleted)。
禁用脚本或ActiveX控件以提高安全性(根据需求)。
案例:
1.帮助文档的"在线帮助页面"嵌入。
2.新闻客户端的"内嵌网页新闻"展示。
34.SplitContainer(分割容器控件)
介绍说明:
用于将界面分为可调整大小的两部分(如左侧导航、右侧内容)。
使用模板:
SplitContainer splitContainer = new SplitContainer();
splitContainer.Orientation = Orientation.Vertical; // 垂直分割(左右布局)
splitContainer.Panel1.Controls.Add(treeView); // 左侧导航树
splitContainer.Panel2.Controls.Add(dataGridView); // 右侧数据表格
this.Controls.Add(splitContainer);
注意事项:
通过Orientation设置分割方向(水平 / 垂直)。
调整分割线位置时设置SplitterDistance属性。
案例:
1.资源管理器的"目录树+文件列表"布局。
2.邮件客户端的"邮件列表+邮件内容"布局。
35.FlowLayoutPanel(流式布局面板)
介绍说明:
用于自动排列控件(如动态添加按钮、图片),支持水平 / 垂直流式布局。
使用模板:
FlowLayoutPanel flowLayoutPanel = new FlowLayoutPanel();
flowLayoutPanel.FlowDirection = FlowDirection.LeftToRight; // 水平流式布局
flowLayoutPanel.AutoScroll = true; // 内容超出时显示滚动条
// 动态添加按钮
for (int i = 0; i < 10; i++) {
Button btn = new Button { Text = $"按钮{i+1}" };
flowLayoutPanel.Controls.Add(btn); }
this.Controls.Add(flowLayoutPanel);
注意事项:
通过FlowDirection设置布局方向(如TopDown垂直布局)。
避免嵌套复杂控件导致布局混乱。
案例:
1.图片浏览器的"图片缩略图"流式布局。
2.标签页的"动态标签"排列。
36.TableLayoutPanel(表格布局面板)
介绍说明:
用于以表格形式排列控件(如表单布局),支持行和列的自动调整。
使用模板:
TableLayoutPanel tableLayoutPanel = new TableLayoutPanel();
tableLayoutPanel.RowCount = 2; // 2行
tableLayoutPanel.ColumnCount = 2; // 2列
// 添加控件到单元格
tableLayoutPanel.Controls.Add(new Label { Text = "用户名:" }, 0, 0);
tableLayoutPanel.Controls.Add(new TextBox(), 1, 0);
tableLayoutPanel.Controls.Add(new Label { Text = "密码:" }, 0, 1);
tableLayoutPanel.Controls.Add(new TextBox { PasswordChar = '*' }, 1, 1);
this.Controls.Add(tableLayoutPanel);
注意事项:
通过RowStyles和ColumnStyles设置行高和列宽(如SizeType.Percent按比例分配)。
合并单元格需要设置CellBorderStyle和ColumnSpan / RowSpan。
案例:
1.登录界面的"表单布局"(标签+输入框)。
2.数据录入界面的"多字段表格布局"。
37.MaskedTextBox(掩码文本框控件)
介绍说明:
用于限制输入格式(如手机号、身份证号),支持预定义掩码。
使用模板:
MaskedTextBox maskedTextBox = new MaskedTextBox();
maskedTextBox.Mask = "000-0000-0000"; // 掩码格式(如手机号:138-1234-5678)
maskedTextBox.PromptChar = '_'; // 占位符
this.Controls.Add(maskedTextBox);
注意事项:
常用掩码字符:0(数字)、9(可选数字)、#(数字或空格)、A(字母或数字)。
通过Text属性获取输入内容(自动过滤掩码字符)。
案例:
1.表单中的"手机号输入框"(格式:XXX-XXXX-XXXX)。
2.身份证号输入框(格式:XXXXXX-XXXX-XXXX-XXXX)。
38.CheckedListBox(带复选框的列表控件)
介绍说明:
结合ListBox和CheckBox,支持多选列表项。
使用模板:
CheckedListBox checkedListBox = new CheckedListBox();
checkedListBox.Items.AddRange(new string[] { "选项1", "选项2", "选项3" });
// 获取选中项
foreach (var item in checkedListBox.CheckedItems) {
Console.WriteLine(item.ToString()); }
this.Controls.Add(checkedListBox);
注意事项:
通过CheckedItems获取所有选中项。
设置CheckOnClick = true点击项时直接勾选。
案例:
1.任务管理的"多任务选择"列表。
2.筛选功能的"多条件选择"列表。