前言:电子工程师、爱好者和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