一用就出问题啊! 麻烦大家看一下下面的代码:在oncomm事件中关闭模态窗口,//moduPublic tsm As String Public Function Getcomm() As String Dim ft As New Frmcomm ft.Show vbModal Getcomm = tsm End Function //-----------form Private Sub setcomm() MSComm1.CommPort = 2 '选用COM2串行口 MSComm1.Settings = "9600,N,8,1" '波特率9600,无奇偶校验位,8位数据位1位停止位 MSComm1.InputLen = 0 'Input将读取接收缓冲区的全部内容 MSComm1.RThreshold = 9 MSComm1.PortOpen = True '打开通信口 MSComm1.OutBufferCount = 0 '清除接收缓冲区数据 End SubPrivate Sub Form_Load() setcomm End SubPrivate Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False tsm = Trim(Text1.Text) End SubPrivate Sub MSComm1_OnComm() With MSComm1 Select Case .CommEvent '判断MSComm1通信事件 Case comEvReceive '收到Rthreshold个字节产生的接收事件 Text1.Text = .Input
//////////// Unload Me '出错,这里怎么写关闭窗口 ///////////// End Select End With End Sub
麻烦大家看一下下面的代码:在oncomm事件中关闭模态窗口,//moduPublic tsm As String
Public Function Getcomm() As String
Dim ft As New Frmcomm
ft.Show vbModal
Getcomm = tsm
End Function
//-----------form
Private Sub setcomm()
MSComm1.CommPort = 2 '选用COM2串行口
MSComm1.Settings = "9600,N,8,1" '波特率9600,无奇偶校验位,8位数据位1位停止位
MSComm1.InputLen = 0 'Input将读取接收缓冲区的全部内容
MSComm1.RThreshold = 9
MSComm1.PortOpen = True '打开通信口
MSComm1.OutBufferCount = 0 '清除接收缓冲区数据
End SubPrivate Sub Form_Load()
setcomm
End SubPrivate Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
tsm = Trim(Text1.Text)
End SubPrivate Sub MSComm1_OnComm()
With MSComm1
Select Case .CommEvent '判断MSComm1通信事件
Case comEvReceive '收到Rthreshold个字节产生的接收事件
Text1.Text = .Input
////////////
Unload Me '出错,这里怎么写关闭窗口
/////////////
End Select
End With
End Sub
[email protected]
去掉form_unload函数
function close_win()
MSComm1.PortOpen = False
tsm = Trim(Text1.Text)
unload me
end fun
源码在上面啊!就是GetComm来获得条形码输入。
还有其它的办法吗?????
我做了一个类似InputBox的function getcomm 来获取条形码。
代码如上,所以要unload me.
有什么更好的方法没有?
请大家多提提意见!!!