我的项目是模拟Enigma机器,我需要一些处理可视界面的帮助. 在我的程序中,我需要一个文本框,用户可以在其中输入无限数量的字母.但是,程序还会根据输入的文本更新其他组件,并显示用
在我的程序中,我需要一个文本框,用户可以在其中输入无限数量的字母.但是,程序还会根据输入的文本更新其他组件,并显示用户的可视化表示.
例如,当我按下字母“A”时,程序将其编码为字母“S”并在界面中显示图像.但是,每次编码字母时,该编码都是唯一的.
如你所知,当你长时间按下键盘上的字母时,它会继续写这封信.例如,如果我按下“A”按钮,在我的文本框中我最终会得到“AAAAAAAAAAAAAAAAAAAAAA”,并且它会对图像显示进行编码,因为它会对每个“A”进行编码.
我的问题是:如何限制文本框每个按键只接受一个字母,但仍允许双字母或三字母?所以我可以有一个相同字符的子串,只要我通过在键盘上反复按下来输入它们.
我需要这个,所以只要输入字母被按下,编码的leter就会亮起来.
如果在KeyEventArgs中使用SuppressKeyPress,则可以控制按键何时完成.在我的示例中,我使用文本框作为键入的控件.但这也适用于其他控件……Dim keyIsDown As Boolean 'marked to give status of keyboard key Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown If keyIsDown Then 'if key is already down abort e.SuppressKeyPress = True Exit Sub End If keyIsDown = True 'if key was not already down mark it as down now End Sub Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp keyIsDown = False 'key has traveled up clear the marker End Sub