当前位置:编程学习 > VB >>

一个小问题,帮我看一看

dim port as interger
port=int(val(text1.text))
mscomm1.port=port

这样赋值不对,而直接mscomm1.port=1就可以
不知道怎样才能得到text1中的数值并打开改端口呢? --------------------编程问答--------------------

    Dim port As Integer
    port = Val(Text1.Text)
    Mscomm1.port = port
--------------------编程问答-------------------- 不知道你text中是什么数据...... --------------------编程问答-------------------- 估计时你的TEXT中不是数据。 --------------------编程问答--------------------
引用 2 楼 vbman2003 的回复:
不知道你text中是什么数据......

可能是你text中的数据越界了 --------------------编程问答--------------------
引用 1 楼 zdingyun 的回复:
VB code
    Dim port As Integer
    port = Val(Text1.Text)
    Mscomm1.port = port

汗颜,MSComm的COM口属性是CommPort不是port
    
    Dim port As Integer
    port = Int(Val(Text1.Text))
    MSComm1.CommPort = port
--------------------编程问答-------------------- 这样做不是很好,因为你无法预计用户在TEXT中输入的数据是否在可接收的范围之内,你还需要对这个数据做有效性判断. 不但代码冗长,而且可操作性不好,用户需要不停去修改数据(要点鼠标,要删除错误数据,再重新输入...)

一般来说,如果程序可接受的数据只是在某一个不大的范围之内的话,推荐用鼠标输入,可采用的控件有COMBO,LIST,GRID等等
因为可以在程序加载的时候直接将可用的有效数据加入到这些控件中,而用户在界面上直接选中.

举例:
假设你的串口号从1到16
你用COMBO控件,在FORM_LOAD的时候
DIM I AS LONG
FOR I = 0 TO 15
  COMBO1.ADDITEM I+1
NEXT
...

之后,在用户输入后,只需要
COMM1.PORT=COMBO1.LISTINDEX+1
就可以了,既免去了数据有效性检验,又方便了用户操作.


以上示例代码为手工输入,未经调试,提供楼主参考
补充:VB ,  COM/DCOM/COM+
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,