我使用Visual Studio 2013并使用VB.NET编写。我正在创建一个在学校实习的项目。现在,在我的一个表格中,我有它,你必须输入你的名字。这里有一些相关的信息。
对于TextBox,我确实拥有ShortcutsEnabled = False
的属性,因此如果这是我的问题,用户无法复制并粘贴到文本框中,那么我只需要没有它。现在,我做了这个,所以它会使我的错误检查Sub更简单,更简洁,所以我不必检查IsNumeric。我不必检查的原因是因为在文本框中' KEYPRESS(不是keydown)事件我限制了允许的输入。
Private Sub Nametxt_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Nametxt.KeyPress
Dim AllowedChars As String = "abcdefghijklmnopqrstuvwxyz" 'The characters that you are allowed to enter
If e.KeyChar <> ControlChars.Back And _
ModifierKeys <> Keys.Shift _
And e.KeyChar <> Chr(32) Then
'e.KeyChar <> ControlChars.Back allows the user to use the backspac
'ModifierKeys <> Keys.Shift allows the user to use the shift key so they can enter Capital letters
'e.KeyChar <> Chr(32) allows the user to use the space bar so they can enter their First and Last name.
If AllowedChars.IndexOf(e.KeyChar) = -1 Then
e.Handled = True
End If
现在,我要做的是让用户也按下&#34; Ctrl + A&#34;为方便起见,他们可以选择框中的所有文字。请记住,我有文本框&#39; ShortcutsEnabled = False的属性
这不起作用:
If e.KeyChar <> ControlChars.Back And _
ModifierKeys <> Keys.Shift And _
e.KeyChar <> Chr(32) And _
新行 - &gt; (e.KeyChar <> Chr(61) AndAlso ModifierKeys <> Keys.Control)
然后
End If
注意:因为我使用的是KEYPRESS事件而不是keydown事件,所以唯一可行的e.key
代码是e.keychar
||||| e.keycode
和e.keyvalue
在此事件处理程序中无法使用