vb6中两个页面的两个MSComm控件,共用电脑一个串口ComPort,怎么控制?

usun82 2013-01-23 09:52:19
具体情况是:在页面A中有一个串口通信控件MSComm1,设置的串口号ComPort是1;在页面B中有一个串口通信控件MSComm2,设置的串口号ComPort也是1。现在是想如果串口1在A页面中打开了MSComm1.PortOpen = True,希望在B页面中设置MSComm2.ComPort=1,就可以直接通过串口1收发数据了。不知道这种能不能实现?
...全文
474 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
worldy 2013-01-25
如果你使用的mdi child窗口,那么你可以使用下面代码来使用各自的串口控件 form1,form2 上都放一个mscomm控件,都叫MSComm1,都放上下面代码 Private Sub Form_LostFocus() mscomm1.portopen=false end sub Private Sub Form_GotFocus() MSComm1.ComPort=1 mscomm1.portopen=te=rue end sub
  • 打赏
  • 举报
回复
神马都能聊 2013-01-24
制作一个控件或者窗体,假如叫C,将MSCOMM32放进去,写好对应的接收数据代码,设置MSCOMM32属性代码对外开放,接收数据,保存到C的某属性内,对外开放,对外开放MSCOMM32的使用状态,接收完成后,最好可以 RaiseEvent 出来,然后将C保存为一个“模块”,在窗体A或B中嵌入C即可,判断C的使用状态,调用C的初始化代码,接收C的事件,调用数据属性。
  • 打赏
  • 举报
回复
贝隆 2013-01-23
无法控制,不能同时打开
  • 打赏
  • 举报
回复
如果你的硬件上只是有一个串口,那就没必要用两个控件来处理的呀,即使是跨窗口操作,也可以直接通过窗口对象名来实现控件属性的调用的呀,如在Form2中可以这样设置Form1中的MSComm控件属性: Form1.MSComm1.PortOpen = False
  • 打赏
  • 举报
回复
of123 2013-01-23
你的情况只需要一个 MSComm 控件,例如在 Form1 上。 你可以在不同的窗体声明控件变量,如: Dim WithEvents mycomm As MSComm 窗体下的代码 Set mycomm = Form1.MSComm1 With mycomm If mycomm.PortOpen = True Then mycomm.PortOpen = False mycomm.CommPort = 1 '...... End With 窗体中会有 mycomm_OnComm 事件可用。
  • 打赏
  • 举报
回复
相关推荐
发帖
VB基础类
加入

7547

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2013-01-23 09:52
社区公告
暂无公告