第二节:基于Winform框架的串口助手小项目---创建界面《C#编程》
宝剑锋从磨砺出,梅花香自苦寒来。本节将进行串口界面的设计(不涉及代码)——WHAPPY
本节三个控件的使用(重点)
-
GroupBox
-
CheckBox
-
StatusStrip
1.界面设计框架

用GroupBox控件分5个区,然后采用CheckBox(选择框控件)给添加两个可选项,最后用一个StatusStrip(状态栏控件)放在底部作为状态提示。


GroupBox:优化界面分组,提升逻辑性。
CheckBox:实现用户选择的开关或配置。
StatusStrip:提供实时状态反馈,增强用户体验。
1. GroupBox(分组控件)
-
功能:用于在界面中将多个相关控件分组显示,提升布局的结构性和可读性。
-
典型用途:
-
将逻辑相关的控件(如一组单选按钮或配置选项)包含在一个边框内。
-
支持设置标题(
Text属性),例如:“串口配置”或“发送设置”。
-
-
示例:
xml
复制
<GroupBox Text="串口配置"><ComboBox Name="cmbPort"/> <!-- 端口号 --><ComboBox Name="cmbBaudRate"/> <!-- 波特率 --> </GroupBox>
运行 HTML
2. CheckBox(选择框控件)
-
功能:允许用户通过勾选或取消勾选进行二进制选择(启用/禁用)。
-
特性:
-
支持三态:可通过
ThreeState属性启用“未确定”状态(显示为灰色勾选)。 -
事件:
CheckedChanged事件用于响应勾选状态变化。
-
-
典型用途:
-
功能开关(如“自动发送”或“十六进制显示”)。
-
多选配置(如同时勾选多个选项)。
-
-
示例:
csharp
复制
CheckBox chkAutoSend = new CheckBox(); chkAutoSend.Text = "自动发送"; chkAutoSend.CheckedChanged += (sender, e) => {if (chkAutoSend.Checked) timerAutoSend.Start();else timerAutoSend.Stop(); };
3. StatusStrip(状态栏控件)
-
功能:位于窗口底部,用于显示实时状态信息或操作反馈。
-
子控件:
-
ToolStripStatusLabel:显示文本(如“状态:已连接”)。 -
ToolStripProgressBar:显示进度条。 -
ToolStripDropDownButton:提供快捷操作菜单。
-
-
典型用途:
-
显示系统信息(如网络状态、时间)。
-
统计信息(如“发送计数:100”)。
-
-
示例:
csharp
复制
StatusStrip statusStrip = new StatusStrip(); ToolStripStatusLabel lblStatus = new ToolStripStatusLabel(); lblStatus.Text = "状态:初始化正常!"; statusStrip.Items.Add(lblStatus);
2. 界面布局设计
使用 GroupBox 分组控件划分功能区域,整体布局采用 垂直流式布局 或 TableLayoutPanel 网格布局。
(1) 串口配置区
-
控件:
-
端口号:
ComboBox(动态加载可用串口,如COM1,COM2)。 -
波特率:
ComboBox(预设常用值:9600、115200 等)。 -
校验位、数据位、停止位:
ComboBox(可选None/Even/Odd、8/7、1/2)。 -
打开串口:
Button(切换文本为“打开”/“关闭”)。
-
-
逻辑:点击按钮时,根据配置参数初始化
SerialPort对象并打开串口。
(2) 接收区
-
控件:
-
接收文本框:
RichTextBox(设置为只读,支持多行和滚动条)。 -
接收配置:
-
自动清空:
CheckBox(定时清空接收区)。 -
手动清空:
Button(点击清空接收区)。 -
十六进制显示:
CheckBox(将接收数据转为 HEX 格式)。 -
暂停接收:
CheckBox(临时冻结接收区更新)。 -
保存数据:
Button+SaveFileDialog(将接收内容保存为文件)。
-
-
(3) 发送区
-
控件:
-
发送文本框:
TextBox(支持手动输入待发送内容)。 -
发送配置:
-
自动发送:
CheckBox+Timer(定时发送数据)。 -
手动发送:
Button(点击发送文本框内容)。 -
十六进制发送:
CheckBox(将输入内容按 HEX 解析)。 -
清空发送:
Button(清空发送文本框)。 -
发送文件:
Button+OpenFileDialog(读取文件内容并发送)。
-
-
自动发送周期:
NumericUpDown(设置定时器间隔,单位毫秒)。
-
(4) 状态栏
-
控件:
StatusStrip+ 多个ToolStripStatusLabel。 -
显示内容:
-
状态:串口连接状态(如“已打开”或“已关闭”)。
-
计数:发送、接收、清空的次数(通过全局变量统计)。
-
3.界面设计效果

