VB 为什么在使用MSComm控件之前要先进行判断,然后再对端口号进行处理,然后再打开.

问题的侧重点在为什么要先判断,可不可以用删除上面的第一行和第三行,即不判断,而直接把端口关上。事实证明不可以,否则出现错误“端口未打开”(我的目的就是要先关上端口啊),谁... 问题的侧重点在为什么要先判断,可不可以用删除上面的第一行和第三行,即不判断,而直接把端口关上。事实证明不可以,否则出现错误“端口未打开”(我的目的就是要先关上端口啊),谁知道这是什么原因?为什么必须用if判断一下? 展开
 我来答
若以下回答无法解决问题,邀请你更新回答
网海1书生
科技发烧友

推荐于2016-08-21 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
端口在未打开的情况下是无法执行关闭操作的,就像一盏灯在未打开的状态下也是无法对它进行关闭的,正确的流程是:如果灯开着,那么关闭它,否则就默默飘过,什么也不用干。
有些控件在遇到同样情况时,会自动进行容错处理,就是说如果指定的设备或端口已关闭,会自动忽略用户的关闭命令,也就是说这时候程序仍然可以发出关闭命令,只不过是没有任何效果而已。但是MSComm这个控件也许是年代太久远,也许是它本身就是这样的设计理念,总之它没有上述的智能容错功能,所以就只能通过程序来判断了。
追问
MSComm控件的portopen属性是否该理解成和enable一样的属性呢?即控制这个控件的有效性,从上面那个代码来看,在判断之前根本不用考虑我当前的commport等于几,即portopen属性和我选择的是哪个串口无关,我这样理解对吗?大神
追答
不对,因为同一个MSComm控件在某一个时刻只能控制一个端口,所以PartOpen属性所关联的就是当前CommPort属性所指定的那个串口,并不是说与串口无关的。另外,CommPort是有默认值(即1),即使你在操作PartOpen之前未对CommPort属性进行任何改动,也并不意味着就没有当前端口,其实这时候你操作的就是串口1
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式