VB6.0 如何编写事件达到控件数组文本框可自动回退字符的功能?
昨天晚上有个友友帮我写了代码可是有问题每次清空一个文本框都会先向前跳一格,见图(顺序上前下后): 展开
Private Sub Text2_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 8 And Text2.Text = "" Then
SendKeys ("+{TAb}")
End If
End Sub
Private Sub Text3_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 8 And Text3.Text = "" Then
SendKeys ("+{TAb}")
End If
End Sub
Private Sub Text4_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 8 And Text4.Text = "" Then
SendKeys ("+{TAb}")
End If
End Sub
Private Sub Text5_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 8 And Text5.Text = "" Then
SendKeys ("+{TAb}")
End If
End Sub
Private Sub Text6_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 8 And Text6.Text = "" Then
SendKeys ("+{TAb}")
End If
End Sub
这个方法很稳定,不过只能从后面往前删,删完一个文本框跳向前一个(必须按回退键,删完一个框才会向前)
如果控件是数组更简单:代码如下
Private Sub Text1_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode = 8 And Text1.Item(Index).Text = "" Then
SendKeys "+{TAB}"
End If
End Sub
这个挺有意思的,代码少,可循环,从第一个删完会跳到最后一个再向前
你看下能不能达到你想要的效果
文本框的KeyPress事件过程中,这一句:if Index <Text2.Count-1 then,这里应该再加上一个判断,输入的字符是否退格,或者,直接把这一句,加在Case 48 To 57,这个分支中。
现在的问题可能就是因为没有判断退格的情况,导致在文本框中输入字符后,就自动跳到下一个文本框了。
加我Q行吗: 我发完整代码,太多这里有字符限制,搞定这个功能追加积分
我扣:①③097⑧五1⑦0
ID:love is 0
这里很简单的,你只要把上面说的语句稍微动一下地方,就可以解决问题了。如果需要,也可以加Q
不是不行,是不稳定老是跳来跳去的,看光标。。点退格清屏后再点一下不是往后跳而是往前跳。。。。我得在毕业前搞定这个东东
你的意思是:在一个文本框中按下退格键,能连续删除文本框中的文字?
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 8 Then
If Text1(Index).Text = "" Then
Text1(Index + 1).SetFocus
Text1(Index + 1).SelStart = 0
Text1(Index + 1).SelLength = Len(Text1(Index + 1).Text)
End If
End If
End Sub