当前位置: 首页 > news >正文

第二节:基于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(动态加载可用串口,如 COM1COM2)。

    • 波特率ComboBox(预设常用值:9600、115200 等)。

    • 校验位、数据位、停止位ComboBox(可选 None/Even/Odd8/71/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.界面设计效果

待续!。。。。。。。。。。。。。。2025/3/3

http://www.mrgr.cn/news/93009.html

相关文章:

  • HarmonyOS NEXT开发进阶(十一):应用层架构介绍
  • unity pico开发二:连接头盔,配置手柄按键事件
  • 【和春笋一起学C++】逻辑操作符和条件操作符
  • MySQL快速搭建主从复制
  • 【C++指南】一文总结C++类和对象【中】
  • Nginx1.19.2不适配OPENSSL3.0问题
  • NL2SQL-基于Dify+阿里通义千问大模型,实现自然语音自动生产SQL语句
  • 小白向:如何使用dify官方市场“ECharts图表生成”工具插件——dify入门案例
  • 【动手学强化学习】番外2-多智能体强化学习算法框架之“MARLlib”学习
  • PPT 小黑第38套
  • Spring(二)容器
  • Unity中动态切换光照贴图LightProbe的方法
  • 【Linux实践系列】:用c语言实现一个shell外壳程序
  • 【C语言】联合体 `union` 的妙用
  • Markdown HTML 图像语法
  • 从新加坡《Companion Guide on Securing AI Systems 》看可信AI全生命周期防护框架构建
  • WPF高级 | WPF 应用程序部署与发布:确保顺利交付到用户手中
  • I2C驱动(十二) -- 主控芯片的i2c_adapter驱动分析
  • 深度学习架构Seq2Seq-添加并理解注意力机制(一)
  • 【AI深度学习基础】Pandas完全指南入门篇:数据处理的瑞士军刀 (含完整代码)