Foxtable(狐表)用户栏目专家坐堂 → 关闭串口


  共有2321人关注过本帖树形打印复制链接

主题:关闭串口

帅哥哟,离线,有人找我吗?
lk15502
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:705 积分:4897 威望:0 精华:0 注册:2016/5/17 12:03:00
关闭串口  发帖心情 Post By:2019/3/22 8:04:00 [显示全部帖子]

在窗口中有一个按钮-关闭串口;代码如下:
If e.Sender.Text = "关闭串口" Then
    Ports("com4").Close
    e.Sender.Text = "打开串口"
End If
If e.Sender.Text = "打开串口" Then
    Ports("com4").Open
    e.Sender.Text = "关闭串口"
End If
出现如下错误;请问老师什么原因?
.NET Framework 版本:2.0.50727.8800
Foxtable 版本:2018.10.9.1
错误所在事件:窗口,唛头打印,关闭串口,Click
详细错误信息:
给定关键字不在字典中。


 回到顶部
帅哥哟,离线,有人找我吗?
lk15502
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:705 积分:4897 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2019/3/22 11:29:00 [显示全部帖子]

有的,这是USB-RS232线,是这样的,可以确定


 回到顶部
帅哥哟,离线,有人找我吗?
lk15502
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:705 积分:4897 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2019/3/22 13:13:00 [显示全部帖子]

已经添加了

 回到顶部
帅哥哟,离线,有人找我吗?
lk15502
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:705 积分:4897 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2019/3/22 14:33:00 [显示全部帖子]

是不是代码有什么问题,我改成这样也没有想要的变化:
Dim ck As WinForm.Button = e.Form.Controls("关闭串口")
If ck.Text = "关闭串口" Then
    ck.Text = "打开串口"
End If
If ck.Text = "打开串口" Then   
    ck.Text = "关闭串口"
End If

 回到顶部
帅哥哟,离线,有人找我吗?
lk15502
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:705 积分:4897 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2019/3/22 14:48:00 [显示全部帖子]

有问题会陷入循环的,老师应该怎么写代码??

 回到顶部
帅哥哟,离线,有人找我吗?
lk15502
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:705 积分:4897 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2019/3/22 14:56:00 [显示全部帖子]

按钮的标题是可以改了,关闭打开串口的操作,还是和原来一样报错??

 回到顶部
帅哥哟,离线,有人找我吗?
lk15502
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:705 积分:4897 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2019/3/22 16:57:00 [显示全部帖子]

找到原因了,DataReceived事件代码,com1没有改成com4;不好意思,给你们挖了一个坑。

 回到顶部
帅哥哟,离线,有人找我吗?
lk15502
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:705 积分:4897 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2019/3/23 8:56:00 [显示全部帖子]

直接在窗口通过代码关闭COM口,会造成窗体卡死,所以设置一个逻辑开关,需要时断开串口与显示控件的链接,代码写在DataReceived事件:
Select Case e.Port.PortName
    Case "COM4"
        Dim s = e.Port.ReadExisting()
        If s.EndsWith("kg") Then
            If Forms("唛头打印").Opened AndAlso Forms("唛头打印").Controls("CheckBox1").Checked = False Then
                Forms("唛头打印").Controls("TextBox7").Text = val(s)
            End If
        End If
End Select

 回到顶部