那段代码的意思是:如果文本框里有"."的话,"."就输不进去,但是如果"."是选中的话,那么就改写原来的"."。
但是我现在的要求是:文本框的默认值为0.00,在光标停在第一个0前输入数字的话,改写"."前面的0,当用户输入"."之后,光标停在"."后面,用户继续输入数字的话,改写"."后面的0,以此类推!
如:现在光标停在第一个0前,用户输1的话,那么效果就是1.00,光标停在1后"."前,用户输12的话,那么效果就是12.00,光标停在2后"."前;用户输入"."后,光标停在"."后,如用户输入3,那么效果就是12.30,光标停在3后0前,紧接用户输入4,那么效果就是12.34,光标停在4后
具体就是这个意思!希望大家能帮帮忙!
Option Explicit
Private Sub Form_Load()
Text1.Text = "0.00"
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim I As Long, K As Long, STR1() As Byte
I = Text1.SelStart
STR1 = Text1.Text
If I * 2 > UBound(STR1) Then Exit Sub
If STR1(I * 2) = 48 Then
STR1(I * 2) = KeyAscii
Text1.Text = STR1
KeyAscii = 0
Text1.SelStart = I + 1
ElseIf KeyAscii = 46 Then
I = InStr(Text1.Text, ".")
If I Then
Text1.SelStart = I
KeyAscii = 0
End If
End If
End Sub
'注:这段程序只是基本实现了功能,但未做任何错误处理,所以在实际应用中要加上错误处理,请自行添加。
[此贴子已经被作者于2007-6-14 12:03:20编辑过]