VB中想在text里使用Backspace编写了一段代码,结果使用Backspace键后光标却跑到了第一位字前面,怎么破?

2024-12-02 04:53:22
推荐回答(1个)
回答1:

在文本框中按backspace键本来就是可以删除光标前一个字符的啊,为什么要另写呢?

如果出于某种目的(比如控制文本框只能输入指定的字符)非要这么做,那就这样:

Private Sub Text_x_KeyPress(Index As Integer, KeyAscii As Integer) '一定要用KeyPress事件!
If KeyAscii = vbKeyBack And Text_x(Index).Text <> "" Then
    KeyAscii = 0   '这行是关键,否则会连续删掉两个字符!
    Text_x(Index).Text = Left(Text_x(Index).Text, Len(Text_x(Index).Text) - 1)
    Text_x(Index).SelStart = Len(Text_x(Index).Text)  '把光标设置到行末!
End If
End Sub