Private Sub Command1_Click()
''''''''''''''''''''''省略若干代码
'这里我想得到自己输入的字符,字符串长度必须为6
'方法1
thestr = InputBox("请输入6个字母") '但这种情况输入后,还要点确认键,麻烦!
MsgBox thestr'方法2 用 Do Loop
Do Until Len(Text1.Text) = 6
DoEvents
Loop
thestr = Text1.Text '但这种方法很占cpu,不可取
MsgBox thestr
'方法3 虽然还有Text1_Change()事件,但这种方法不适合我的程序'这里怎么实现,等待Text1.Text输入,且长度为6。(类似方法2,但不占cpu, InputBox就不占cpu),然后再执行下面其他的代码''''''''''''''''''''''这里还有若干代码End Sub
''''''''''''''''''''''省略若干代码
'这里我想得到自己输入的字符,字符串长度必须为6
'方法1
thestr = InputBox("请输入6个字母") '但这种情况输入后,还要点确认键,麻烦!
MsgBox thestr'方法2 用 Do Loop
Do Until Len(Text1.Text) = 6
DoEvents
Loop
thestr = Text1.Text '但这种方法很占cpu,不可取
MsgBox thestr
'方法3 虽然还有Text1_Change()事件,但这种方法不适合我的程序'这里怎么实现,等待Text1.Text输入,且长度为6。(类似方法2,但不占cpu, InputBox就不占cpu),然后再执行下面其他的代码''''''''''''''''''''''这里还有若干代码End Sub
所以应该尽量设计自己的程序结构去使用Text_Change这样的事件来触发执行。如果是Java或者.net下面倒可以使用多线程来完成你的想法,但是VB6对多线程的支持极其差,所以还是算了。
如果你硬要那么搞,也倒是有一个简洁的方法:
Do Until Len(Text1.Text) = 6
DoEvents
Sleep 5 '这里加入一个Sleep,让当前线程休眠一小会,从而让出CPU资源
Loop
thestr = Text1.Text
MsgBox thestr
......
end if可以先设text1最大输入maxlenth为6
新建窗体 然后以模式窗体方式show 确定的时候判断就可以,类似inputbox调用。
但我用 Form2.show,的时候,后面的代码也执行了,怎么实现想inputbox那样,让后面的代码等待它的返回值
Text1.MaxLength = 6
End SubPrivate Sub Text1_LostFocus()
If Len(Text1) < 6 Then Text1.SetFocus
End Sub