VB使用中应该注意的一些小问题
1.关于mscomm控件使用中应该注意的问题
(1) MSComm1.Output 只能写 不能读
所以 不能他的值作为if的判断条件
否则编译的时候会报错,而且不会起到作用!
(2) 错误码代表的具体错误
编译错误号是8018时,串口尚未打开
编译错误号是8012时,串口已经打开
编译错误号是8005时,说明此串口已经被另一软件占用中
这种问题的处理方法如下:
'打开串口
Private Sub Command_open_Click()
If Command_open.Caption = "打开串口" Then
On Error Resume Next
MSComm1.PortOpen = True
Command_open.Caption = "关闭串口"
Shape1.FillColor = QBColor(12) '红色
If Err.Number = 8005 Then
MsgBox "串口已被占用!"
Command_open.Caption = "打开串口"
Shape1.FillColor = QBColor(8) '黑色
End If
Else
Command_open.Caption = "打开串口"
MSComm1.PortOpen = False
Shape1.FillColor = QBColor(8) '黑色
End If
End Sub
(3)
(1)
(1)
(1)
2.代码中的错误检测(两种方式的区别)
On Error GoTo 0
表示禁止当前过程中任何已启动的错误处理程序。
On Error Resume Next
说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。
On Error GoTo line
启动错误处理程序,且该例程从必要的 line 参数中指定的 line 开始。line 参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的 line 必须在一个过程中,这个过程与 On Error 语句相同; 否则会发生编译时间错误。
以上MSDN上的解释
一般情况下,如果在对我们创建的对象或控件进行错误捕捉,需要使用On Error Resume Next ,然后在判断它的Err.Number,根据错误类型来做相应的处理。
举例如下:
Private Sub Command_send_msg_Click()
Text_rx.Text = ""
On Error Resume Next
MSComm1.Output = Text_msg_send.Text & Chr(&H1A) & vbCr
If Err.Number = 8018 Then
MsgBox "串口尚未打开!"
End If
End Sub
3.& 连接符使用中应该注意的问题
&把两个字符串前后连接在一起 ,但是两边一定要有空格。否则编译器会提示出错。
例如: "I love"&"you!"这样就会提示报错。正确做法如下:
"I love" & "you!"
4.VB中延时功能的实现
'延时函数
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private savetime As Double
Function delay(JianGe As Long) '以毫秒为单位
'JianGe时间间隔
savetime = timeGetTime
While timeGetTime < savetime + JianGe
DoEvents
Wend
End Function
4.常用字符串操作
val(string) 将字符串转换成数字
阅读(2412) | 评论(0) | 转发(0) |