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

第四节:基于Winform框架的串口助手小项目---开关串口《C#编程》

在漫漫人生征途上,学习宛如一座明亮的灯塔,为我们指引前行的方向。然而,学习之路并非总是一帆风顺,我们常常会遭遇各种挫折与困难,陷入迷茫与疲惫之中。此时,学习激励就如同那温暖的火种,能够重新点燃我们内心对知识的渴望,赋予我们继续前行的力量。—————WHAPPY

介绍一下:解决方案里有的内容

  • Form1.cs [设计] :表明 Form1.cs 这个文件当前处于设计视图状态,在 C# 开发 Windows Forms 应用程序时,可通过可视化界面设计窗口及控件等元素。

  • Form1.Designer.cs :是由开发工具自动生成的文件,用于存放窗体及控件的初始化代码等内容,一般不需要手动大量修改。

  • Form1.cs :是主要的代码文件,用于编写与该窗体相关的业务逻辑代码,比如按钮点击事件处理、数据交互等功能的实现。

1.任务目标:

2.Button控件的使用

1. 配置 Button 的文字和图片

方法 1:在设计器(Designer)中设置

  1. 选中 Button 控件
  2. 属性(Properties)窗口中找到:
    • Text:设置按钮的文字。
    • Image:选择按钮的图片(Image 类型)。
    • TextImageRelation:设置文字和图片的相对位置(如 ImageAboveText)。
    • ImageAlign:调整图片在按钮内的对齐方式(如 MiddleCenter)。
    • TextAlign:调整文本在按钮内的对齐方式(如 MiddleCenter)。

方法 2:在代码中动态设置

如果你想在代码中配置 按钮的文字和图片,可以这样做:

// 设置按钮文字 myButton.Text = "打开串口"; // 设置按钮图片(确保 "icon.png" 存在于项目的资源文件夹中) myButton.Image = Image.FromFile("icon.png"); // 调整图片与文字的相对位置 myButton.TextImageRelation = TextImageRelation.ImageAboveText; // 图片在文字上方 // myButton.TextImageRelation = TextImageRelation.ImageBeforeText; // 图片在文字左侧 // 调整图片在按钮内的对齐方式 myButton.ImageAlign = ContentAlignment.MiddleCenter; // 调整文字在按钮内的对齐方式 myButton.TextAlign = ContentAlignment.MiddleCenter;


2. 处理 Button 的 Click 事件

按钮的 Click 事件可以用来执行打开/关闭串口弹窗提示等操作。

方法 1:在设计器中绑定 Click 事件

  1. 选中 Button 控件
  2. 属性窗口找到 Click 事件。
  3. 双击 Click 事件,自动生成 button1_Click 方法:
 

private void button1_Click(object sender, EventArgs e) { MessageBox.Show("你点击了按钮!"); }


方法 2:在代码中动态绑定 Click 事件

如果按钮是 运行时动态创建的,需要用 += 绑定事件:

3.虚拟端口的使用

下载连接:

虚拟串口驱动(VirtualSerialPortDriver,简称VSPD)6.9版本的汉化软件界面VSPD是用于创建虚拟串口的工具资源-CSDN文库

4.代码实现

源码:

private void OpenSerial_btn_Click(object sender, EventArgs e)
{
    try
    {
        if (!serialPort1.IsOpen)  // 如果串口未打开,则执行打开逻辑
        {
            serialPort1.PortName = Port_cbb.Text;
            serialPort1.BaudRate = Convert.ToInt32(Baud_cbb.Text);
            serialPort1.DataBits = Convert.ToInt32(Databit_cbb.Text);

            // 设置校验位
            switch (Checkbit_cbb.SelectedIndex)
            {
                case 0:
                    serialPort1.Parity = Parity.None;
                    break;
                case 1:
                    serialPort1.Parity = Parity.Even;
                    break;
                case 2:
                    serialPort1.Parity = Parity.Odd;
                    break;
                default:
                    serialPort1.Parity = Parity.None;
                    break;
            }

            // **修正错误:用 Stopbit_cbb 控制 StopBits**
            switch (Stopbit_cbb.SelectedIndex)
            {
                case 0:
                    serialPort1.StopBits = StopBits.One;
                    break;
                case 1:
                    serialPort1.StopBits = StopBits.OnePointFive;
                    break;
                case 2:
                    serialPort1.StopBits = StopBits.Two;
                    break;
                default:
                    serialPort1.StopBits = StopBits.One;
                    break;
            }

            serialPort1.Open();
            isOpen = true;
            OpenSerial_btn.Text = "关闭串口";  // **更新按钮文本**
        }
        else  // **如果串口已打开,则执行关闭逻辑**
        {
            serialPort1.Close();
            isOpen = false;
            OpenSerial_btn.Text = "打开串口";  // **恢复按钮文本**
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("操作串口失败:" + ex.Message);
    }
}

5.实现效果

本节主要实现了,加载窗体时默认显示初始值(如:波特率默认加载为9600),并对打开按钮进行了事件处理,(双击打开按键并对其进行编辑操作,主要是完成打开空间的业务逻辑)。

未完待续》》》》》》》》》

 

相关文章:

  • 链表-相关面试算法题
  • Android Studio 的详细安装步骤,适用于 Windows/MacOS/Linux 系统
  • MySQL数据库安装(详细)—>Mariadb的安装
  • docker常规命令和高级用法
  • 【Linux】信号保存
  • 深入解析网络协议:从OSI七层模型到HTTP与TCP/IP的关系
  • 2安卓开发的主要语言
  • 【STM32】TIM输入捕获-学习笔记
  • 【北上广深杭大厂AI算法面试题】深度学习篇...这里详细说明ResNet中为什么不用dropout?
  • AI 大模型本身的(自己的)(如 GPT、BERT 等)的自动化测试
  • 网络安全学多久?就业前景如何?
  • 二、双指针——6. 三数之和
  • 探秘基带算法:从原理到5G时代的通信变革【四】Polar 编解码(二)
  • 大模型——CogView4:生成中英双语高清图片的开源文生图模型综合介绍
  • navicat下载与安装【带布丁】
  • 记录uniapp小程序对接腾讯IM即时通讯无ui集成(2)
  • 人工智能 全部技术栈以及简单运用场景
  • Springboot 循环依赖
  • Python学习第五天
  • 城市管理综合执法系统源码,B/S模式与手机等移动终端架构,java语言开发,可扩展性强
  • 数据百度做网站好用吗/seo关键词seo排名公司
  • 政府网站建设排名/潍坊百度关键词优化
  • 珠海网站建设解决方案/东莞企业网站排名
  • ps怎么做电商网站/灰色关键词代发可测试
  • 自己网站联系电话修改怎么做/电商培训机构靠谱吗
  • 做盗版视频网站违法吗/怎么推广软件