首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

COM 大家好~又是小弟我来问了

2012-01-18 
COM 大家好~~~又是我来问了不知道为什么,这段时间都没有心情去弄那个软件了,一是自己水平有限,不是做这行

COM 大家好~~~又是我来问了
不知道为什么,这段时间都没有心情去弄那个软件了,一是自己水平有限,不是做这行的,二是最近在忙其他的事情.直到昨天把硬件都弄好了,样板发出去了.有点时间了,经理又说叫我弄个软件出来~~~~~~~哎,本来是搞硬件,你说叫我弄软件??我也只好边学边弄,所以还请大家帮帮忙~~~~~~~~~~~~~~~先谢谢大家了!!!!!!!!!!!!

  我的问题是VB中怎么选择COM口???MSComm1.CommPort = 1 (像这1是COM1,我的要求就是在选择COMBO的下拉可以选择到30端口,其实好像是100都可以)
对于你们来说是很简单的,但是我弄的选择怎么无效呢
我看网上的代码是MSComm1.CommPort = Val(Mid(Combo1.Text, 4, 1)) 
但是我的COMBO1里面又COM1---COM30了,就是选择哪一个都有效,奇怪了~~~~~
本来不是应该是COM1(MSComm1.CommPort = 1 )才有效的吗~~~~~~~~~
对于代码~~~~~~~~~~~~~~~我好晕!!!!!!!!!!!!!!!!!!!!!!!

[解决办法]
VB+WINXP支持到COM口号16,但COM口号必须是实际存在的物理口号.
http://www.vbgood.com/viewthread.php?tid=83700
[解决办法]
CommPort 只能设 1-16,但是你的函数只取一个字符,选 COM30 其实是设了 3,没有用过超过 9 的,所以都成功。

VB code
MSComm1.PortOpen = FalseMSComm1.CommPort = Val(Mid(Combo1.Text, 4))MSComm1.PortOpen = True
[解决办法]
Val(Mid(Combo1.Text, 4))是从Combo1.Text的第四个字符一直取到结尾,那就要看你的Combo1.Text是什么了.如果是COM30那就是30,和Val(Mid(Combo1.Text, 4,2))一样.
2))
[解决办法]
VB code
Private Sub Form_Load()    Dim i As Integer    For i = 1 To 16        Combo1.AddItem "COM" & Format(i)    Next    Combo1.Text = Combo1.List(0)End SubPrivate Sub Combo1_Click()    MSComm1.CommPort = Mid(Combo1.Text, 4)End Sub
[解决办法]
在 Mid 函数上 F1 看帮助,都不好意思直接贴 MSDN 内容
MSDN:【Mid 函数】
返回 Variant (String),其中包含字符串中指定数量的字符。

§ 语法

Mid(string, start[, length])

Mid 函数的语法具有下面的命名参数:

部分 说明
------ ---------------------------------------
string 必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null。
start 必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数,
Mid 返回零长度字符串 ("")。
length 可选参数;为 Variant (Long)。要返回的字符数。如果省略或 length 超过文本的字符数
(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。
------ ---------------------------------------

[解决办法]
MSComm1.PortOpen = False
MSComm1.CommPort = Val(Right(Combo1.Text, 2))
MSComm1.PortOpen = True

热点排行