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收发数据了。不知道这种能不能实现?
...全文
581 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
无法控制,不能同时打开
现在还是人类 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 事件可用。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧