【C#学习笔记】Lesson4-串口扫描函数封装、调用及疑问

前言:电子工程师、爱好者和PC的交互最常用的便是串口接口了。所以这个也是C#学习的核心、也是以后常用的。

第一步、新建一个完整的Windows 窗体工程,这里就不多介绍了

第二步、拖入串口控件和按钮空间及下拉框空间

第三步、修改相关的参数,调整响应的位置,我的设置如下:

下拉框


按钮:


串口控件:这里直接默认了,参数不是重点


以上可视化话界面就弄完了。

第四步:修改相关控件事件代码

1.封装一个串口扫描函数如下:

        private void SearchAndAddSerialToComboBox(SerialPort MyPort, ComboBox MyBox)
        {                                                               //将可用端口号添加到ComboBox
            string Buffer;                                              //缓存
            MyBox.Items.Clear();                                        //清空ComboBox内容
            for (int i = 1; i < 20; i++)                                //循环这里只扫描1-19
            {
                try                                                     //核心原理是依靠try和catch完成遍历
                {
                    Buffer = "COM" + i.ToString();
                    MyPort.PortName = Buffer;
                    MyPort.Open();                                      //如果失败,后面的代码不会执行
                                                                        // MyString[count] = Buffer;
                    MyBox.Items.Add(Buffer);                            //打开成功,添加至下俩列表
                    MyPort.Close();                                     //关闭
                }
                catch//出错了什么也不做继续循环
                {
                }
            }
        }

注意这里需要在代码开头申明一个定义(就这么理解把,不在乎说法了,只管用)如图:


2、双击按钮进入按键事件代码区域添加如下代码:

        private void button1_Click(object sender, EventArgs e)
        {
            SearchAndAddSerialToComboBox(serialPort1,comboBox1);
            //设计上根据使用到的串口和下拉框决定传入参数
        }

好了,代码较少也很简单,基本上都有注释,也容易理解。功能和效果图如下:


版权申明:代码参考的“杜洋工作室”,纯属学习,没有商业用途。

也再次提出疑问:想用下拉框的左键单击替换扫描按键的功能,于是我想到双击下拉框进入代码区域,添加代码如下:

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            SearchAndAddSerialToComboBox(serialPort1, comboBox1);
        }

但是不才,并没有成功。查了查资料也看了看大神们的论坛博客,说可以在 ComboBox的DropDown 或 DropDownClosed事件中处理。但是因为初学,最终也没有成功。如果有大神知道还请留言。

以上是今天学习到的内容。

By Urien 2018年2月14日 01:59:12



猜你喜欢

转载自blog.csdn.net/qq997758497/article/details/79324034