在文本框中按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