用VB编程时,如何能使在文本框中输入的数据,达到小数点后两位时自动,跳到下一个文本框!
问题点数:50、回复次数:7Top
1 楼hyzx2000(hy)回复于 2000-08-08 13:18:00 得分 50
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Dim ls_text As String
Dim li_pos As Integer
ls_text = Text1.Text
li_pos = InStr(ls_text, ".")
If Len(ls_text) - li_pos >= 2 And li_pos <> 0 Then
Text2.SetFocus
End If
End Sub
Top
2 楼TopHead(我是一个兵)回复于 2000-08-08 13:19:00 得分 0
那在keypress中等输入数据满足条件是执行sendkeys不就行了嘛:)Top
3 楼Fly2000()回复于 2000-08-08 14:25:00 得分 0
请问如何判断满足条件。Top
4 楼prefix(MtSC)回复于 2000-08-08 21:37:00 得分 0
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(".") Then
SendKeys "{TAB}"
End If
该给分了……:)Top
5 楼shines(郭子)回复于 2000-08-08 22:05:00 得分 0
Fly2000, 我觉得hyzx2000已经说得相当的详细了,你还问如何判断满足条件??
太对不起hyzx2000的劳动了吧。
prefix说得不太对,输入小数点就跳了?而且用SendKeys "{TAB}"也有个坏处,就是编辑控件的时候,TabIndex并不是有次序的,还是手动的Text2.SetFcous的好。
Fly2000你看不懂hyzx2000的吗?Top
6 楼prefix(MtSC)回复于 2000-08-09 20:36:00 得分 0
哦,是小数点后两位啊? 可以这样写:
Private Sub Text1_Change()
If mid(text1.text,len(text1.text),1)="." then
SendKeys "{TAB}"
end if
设置 Tabindex没有次序难道不能自己设置吗? 设置TabIndex是一定要的。谁能保证自己的软件从头到尾都能按顺序放置控件? 用Text2.SetFocus的话,如果你有100个Textbox那怎么办? 一个个写? 如果是我,我就不写了。
Top
7 楼prefix(MtSC)回复于 2000-08-09 20:46:00 得分 0
打错了打错了,应该是
Private Sub Text1_Change()
If left(right(text1.text,3),1)="." then
SendKeys "{TAB}"
end if
如果用上面那个,在text1长度小于3时应该会出错。Top




