重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以将Form1里的串口公开,然后在Form2里添加对DataReceived事件的处理
专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业银州免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
Form1.Designer.cs中将
private System.IO.Ports.SerialPort port;改为
publice System.IO.Ports.SerialPort port;
然后在Form2里加上
Form1.port.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(port_DataReceived);
最后在
void port_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
在这里进行处理就可以了;
}
这个是C#的,VB的你自己转一下
直接发数字1。
一般可以直接发10进制的数字,当然要转换,比如16进制的21,你可以直接发33
你定义的委托需要带参数才行,DataReceived事件中没有接收数据代码,下面的代码经测试可用
Delegate Sub SetTextCallback(ByVal InputString As String)
Private Sub ShowString(ByVal comData As String)
txt_Rect.Text += comData '将收到的数据入接收文字框中
txt_Rect.SelectionStart = txt_Rect.Text.Length
txt_Rect.ScrollToCaret()
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim inData As String = SerialPort1.ReadExisting
Dim d As New SetTextCallback(AddressOf ShowString)
BeginInvoke(d, inData)
End Sub
是独立的东西,没有依赖,尽管在底层有可能是类似的调用
还有在.net里一般只认为是普通类,并不属于控件,因为没界面