yjamdfhqjs 发表于 2016-9-28 14:59:19

C#怎么加入串口接收事件(EVENT)?

接触C#大概一周多了,感觉写的代码量比MFC少了很多,现在用C#写一个串口的调试工具,但是在加入串口接收数据的事件时候有点问题
就是应该怎么加入串口接收数据的事件响应呢?网上查到的资料很多都是直接贴了一串代码,没有什么作用。有图形化的操作方法吗?
我用的是VS2010的环境,点击右边的小闪电图标会出来一系列的事件列表,但是没有找到口的接收事件。

hushaoxin 发表于 2016-9-28 15:09:20

yjamdfhqjs 发表于 2016-9-28 17:23:36

hushaoxin 发表于 2016-9-28 15:09


谢谢回答,不过我这儿怎么没有出现你那儿的“system.IO.Ports.SerialPort”呢,是我的命名空间有问题吗?我的命名空间是:using System.IO.Ports;

dreambox 发表于 2016-9-28 17:24:04

二楼正解

yjamdfhqjs 发表于 2016-9-28 17:28:55

dreambox 发表于 2016-9-28 17:24
二楼正解

我这儿怎么没出现二楼的消息属性页面呢?

dreambox 发表于 2016-9-28 17:54:33

yjamdfhqjs 发表于 2016-9-28 17:28
我这儿怎么没出现二楼的消息属性页面呢?

点右边闪电图标

weshare 发表于 2016-9-28 18:13:14

serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataRx);
看杜洋的视频

weshare 发表于 2016-9-28 18:13:46

      private void port_DataRx(Object sender, SerialDataReceivedEventArgs e)
      {
            //这样子才不会丢包
            while (serialPort1.BytesToRead > 0)
            {
                TempChar = (byte)serialPort1.ReadByte();
}
}

armstrong 发表于 2016-9-28 18:15:21

人家是用SerialPort作为窗口组件才会出现在属性页里。楼主你肯定是在代码里自己new出来的SerialPort吧?

armstrong 发表于 2016-9-28 18:21:07

框架自带的串口类在数据接收超时方面不够灵活,导致基于报文的串口协议有些时候会有粘包问题。这样也就基本没有了实时性。
要灵活是用串口,就得调用Win32 API,比如:SetCommTimeouts,SetCommState,WaitCommEvent等。

yjamdfhqjs 发表于 2016-9-28 20:44:18

armstrong 发表于 2016-9-28 18:15
人家是用SerialPort作为窗口组件才会出现在属性页里。楼主你肯定是在代码里自己new出来的SerialPort吧? ...

高手,这个是怎么操作的呢,怎么把SerialPort作为窗口组件呢

armstrong 发表于 2016-9-28 21:43:52

yjamdfhqjs 发表于 2016-9-28 20:44
高手,这个是怎么操作的呢,怎么把SerialPort作为窗口组件呢

FireHe 发表于 2016-9-28 21:44:34

yjamdfhqjs 发表于 2016-9-28 20:44
高手,这个是怎么操作的呢,怎么把SerialPort作为窗口组件呢

直接拖一个串口控件到窗口里面去就好了

yjamdfhqjs 发表于 2016-9-28 22:02:28

armstrong 发表于 2016-9-28 21:43


谢谢了 网上找到的资料都没说到这个坑

FUK_In_Love 发表于 2016-9-28 22:19:13

视频我以前写过一个

dalarang 发表于 2016-9-28 23:29:27

从工具箱把组件拖到窗口比较方便。
只要添加到窗口后,点击对应控件,然后在右边点击小闪电图标,就可以看到该组件的事件列表,在对应事件上双击即可添加对应事件。

不要用代码来添加,否则又要写事件、委托什么的怪麻烦。刚接触C#的时候先搞点简单的入手,以免影响学习的积极性。

yjamdfhqjs 发表于 2016-9-28 23:41:41

dalarang 发表于 2016-9-28 23:29
从工具箱把组件拖到窗口比较方便。
只要添加到窗口后,点击对应控件,然后在右边点击小闪电图标,就可以看 ...

OK 谢谢 已实现功能
页: [1]
查看完整版本: C#怎么加入串口接收事件(EVENT)?