第二节:基于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
。 -
显示内容:
-
状态:串口连接状态(如“已打开”或“已关闭”)。
-
计数:发送、接收、清空的次数(通过全局变量统计)。
-