关于MSComm1_OnComm事件中Case comEvReceive问题

问题描述

关于MSComm1_OnComm事件中Case comEvReceive问题

大家好,
MSComm1_OnComm事件中Case comEvReceive时,非要在comEvReceive后面加个数字才能收到串口发过来的字符,比如Case comEvReceive1或Case comEvReceive22,不加数字就收不到,我的是WIN7系统,奇怪了,请问怎么回事?程序如下(简单测试的):

 Private Sub Command1_Click()
    MSComm1.Output = Text1.Text
End Sub

Private Sub Command2_Click()
    MSComm2.Output = Text2.Text
End Sub

Private Sub Form_Load()
    With MSComm1
        .Settings = "19200,n,8,1"
        .CommPort = 5
        .InputMode = comInputModeText
        .InputLen = 0
        .SThreshold = 1
        .RThreshold = 1
        .OutBufferCount = 0
        .InBufferCount = 0
        If Not .PortOpen Then .PortOpen = True
    End With

    With MSComm2
        .Settings = "19200,n,8,1"
        .CommPort = 6
        .InputMode = comInputModeText
        .InputLen = 0
        .SThreshold = 1
        .RThreshold = 1
        .OutBufferCount = 0
        .InBufferCount = 0
        If Not .PortOpen Then .PortOpen = True
    End With
End Sub

Private Sub MSComm1_OnComm()
    Select Case CommEvent
        Case comEvReceive111
            Text1 = Text1 + MSComm1.Input
    End Select
End Sub

Private Sub MSComm2_OnComm()
    Select Case CommEvent
        Case comEvReceive111
            Text2 = Text2 + MSComm2.Input
    End Select
End Sub

我好像没有悬赏分了,不知道有没有人帮我解答,5555555~~~

解决方案

窗体最上方加上

 Option Explicit

同时
Select Case CommEvent 改成Select Case MSComm2.CommEvent

解决方案二:

Case 0
可以收到么?
估计CommEvent返回的是0,comEvReceive111相当于定义了一个新变量,所以相当于0

解决方案三:

我一般用

if comEvReceive = 2 then
end if

这么来处理

时间: 2024-08-03 15:26:04

关于MSComm1_OnComm事件中Case comEvReceive问题的相关文章

在ITemChanged事件中对数据窗口中的数据进行校验

作者:达通兴电脑科技公司(www.study01job.com) 郭宝利 对用户录入的数据进行校验,这是数据窗口控件本身就具备的功能.但是,我们希望做更多的处理,并且错误信息显示界面更友好一些.为此,我们编写一个全局函数,在数据窗口的ItemChanged事件中调用,并且使用MessageBox显示该函数返回的错误信息.另外,还需要在数据窗口的ItemError事件中return 1来阻止数据窗口本身的错误提示窗口的显示. 当然,对下面的函数进行扩充,可以加入对更多类型数据的校验,以及基于业务要

c++-在Qevent的双击事件中捕捉一个双击信号来执行槽函数,是否为同一个双击事件

问题描述 在Qevent的双击事件中捕捉一个双击信号来执行槽函数,是否为同一个双击事件 如 case QEvent::MouseButtonDblClick: { connect(xxxx,SIGNAL(dblclick()),yyyy,SLOT(fun()); } 那单次双击是否能执行这个槽函数呢 解决方案 case QEvent::MouseButtonDblClick: { connect(xxxx,SIGNAL(dblclick()),yyyy,SLOT(fun()); } 那单次双击是

钓鱼岛事件中站长应该怎样钓住用户

9月18日,是"九·一八事变"纪念日,多地防空警报拉响,1931年9月18日,日本全面发动侵华战争,没想到81年后的今天,中日关系再次陷入泥潭.说到这里可能会有人问钓鱼岛时间跟我们站长又有什么关系呢?言归正传,经历了百度这几个月来的暴风雨,草根站长早已经怨声载道,然而阳光总在风雨后,互联网最切记的是坚持.此外离开了搜索引擎站长们能做的还有很多,尽管SEO3.0的时代仍然看似遥远,但用户体验却成为了做站的原则,用户体验就是留住用户,比如在钓鱼岛事件中站长需要做那些事来吸引用户钓住用户呢?

628事件中网站被K 你是否知晓是何原因所致?

在近日,无论是站长论坛也好,站长群也罢,628事件无疑是最为热门的话题之一,当然这也是百度近些年来第一次这么大幅度的调整,以至于很多网站被K,当然小编手下的一个站点也未能幸免,当面对站点被K的时候,我和很多站长一样,去分析寻找被K的原因,并且总结出了一些被K的原因,希望对各位站长有所帮助! (一)百度站长平台公告. 当我发现大量网站被K的时候,首先关注的就是百度站长平台发布的公告.   从平台当中我们可以看出,百度从五月份就开始着手准备对互联网垃圾信息进行一个净化,所以说这次的大幅度调整,无疑是

SQL SERVER中Case语句的用法

Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

耗时很长的服务器端事件中让客户端得到中间过程信息的更合理的解决方案

耗时很长的服务器端事件中让客户端得到中间过程信息的更合理的解决方案 我认为<耗时很长的服务器端事件中让客户端得到中间过程信息的合理解决方案>一文中的解决方案不合理,属于技术的误用,满篇的ajax这个词很容易给读者造成误导 . 原需求: B/S结构的系统里,用户点一个按钮系统开始发送上千封邮件,要求把发送信息(发送成功数,失败数,剩余数量...)动态实时的反馈给客户. 原文的技术误用之处: (1)ajax,pageload 这些ui层的东东渗透到逻辑层里去了 (2)thread的职责太多 并不是

Linux下shell中case命令详解

  linux下shell中的case名字和C/C++中的switch类似,但是shell中的case更强大和复杂. 1.强大主要体现在:shell中case中的关键字可以是字符串类型,而每一项中可以包含正则表达式. 2.复杂主要体现在:shell中case的每一个项后有三个选择:break(常规的break).unconditional follow up(无条件继续)和conditional follow up(有条件继续). 这篇文章的重点是上面的第2点. case的无条件继续和有条件继续

浅谈javascript中this在事件中的应用

 这篇文章主要介绍了浅谈javascript中this在事件中的应用实例,非常有助于我们对this关键字的理解,这里推荐给大家.     this关键字在javascript中是非常强大的,但是如果你不清楚它是怎么工作的就很难使用它.   代码如下: function dosomething(){ this.style.color="#fff"; }   上面这段代码中的this指向什么呢,运行dosomething()会输出什么呢? 在javascript中,this总是指向当前执行

mysql中case 和if的用法

问题描述 mysql中case 和if的用法 这是我想要写的,但是case when里面是不是只能写一个条件?我想要两个条件去判断,返回一列.用if怎么写呢? 解决方案 不是,你这样写就是可以的. 解决方案二: 可以用when and,最好用括号括起来,然后就是检查你的判断条件是否正确 SELECT table1.id, table1.name, CASE WHEN (table1.event = 'r' AND table1.name='Jones') THEN 'very high' WHE