VB6.0 如何编写事件达到控件数组文本框可自动回退字符的功能?

现在要删除文本框的字符,只能选一个文本框,按一下退格,我想,按住直接可以跨文本框退格,不需要在手工选定了。。。该怎么弄?昨天晚上有个友友帮我写了代码可是有问题每次清空一个... 现在要删除文本框的字符,只能选一个文本框,按一下退格,我想,按住直接可以跨文本框退格,不需要在手工选定了。。。该怎么弄?
昨天晚上有个友友帮我写了代码可是有问题每次清空一个文本框都会先向前跳一格,见图(顺序上前下后):
展开
 我来答
极品宁采晨
2014-06-17 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:113
采纳率:16%
帮助的人:47.9万
展开全部

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
这个挺有意思的,代码少,可循环,从第一个删完会跳到最后一个再向前

 

你看下能不能达到你想要的效果

百度网友f7fee79f7
2014-06-17 · TA获得超过395个赞
知道小有建树答主
回答量:341
采纳率:0%
帮助的人:322万
展开全部
代码看得不是很完整,分析一下看到的部分,之所以出现你说的情况,问题可能是出现在

文本框的KeyPress事件过程中,这一句:if Index <Text2.Count-1 then,这里应该再加上一个判断,输入的字符是否退格,或者,直接把这一句,加在Case 48 To 57,这个分支中。

现在的问题可能就是因为没有判断退格的情况,导致在文本框中输入字符后,就自动跳到下一个文本框了。
追问
加我Q行吗: 我发完整代码,太多这里有字符限制,搞定这个功能追加积分
我扣:①③097⑧五1⑦0
ID:love is 0
追答
这里很简单的,你只要把上面说的语句稍微动一下地方,就可以解决问题了。如果需要,也可以加Q
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我叫明辉
2014-06-17 · TA获得超过997个赞
知道小有建树答主
回答量:1193
采纳率:50%
帮助的人:593万
展开全部
同学,你又遇到什么问题了。昨天的程序不行吗?
更多追问追答
追问
不是不行,是不稳定老是跳来跳去的,看光标。。点退格清屏后再点一下不是往后跳而是往前跳。。。。我得在毕业前搞定这个东东
追答
你的意思是:在一个文本框中按下退格键,能连续删除文本框中的文字?

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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式