我正在使用 Visual Studio 2013 并在 VB.NET 中编写。我正在创建一个在学校实习的项目。现在,在我的一种表格中,我有它,您必须在其中输入您的姓名。这里有一些相关信息。
对于文本框,我确实有属性,ShortcutsEnabled = False
因此如果这是我的问题,用户无法复制并粘贴到文本框中,那么我只需要不使用它。现在,我这样做是为了让我的错误检查 Sub 更简单、更简洁,这样我就不必检查 IsNumeric。我不必检查的原因是因为在文本框的 KEYPRESS (not 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
现在,我想做的是允许用户同时按下“Ctrl+A”,以便他们可以选择框中的所有文本以方便使用。请记住,我有 ShortcutsEnabled = False 的文本框属性
这不起作用:
If e.KeyChar <> ControlChars.Back And _
ModifierKeys <> Keys.Shift And _
e.KeyChar <> Chr(32) And _
新行 --> (e.KeyChar <> Chr(61) AndAlso ModifierKeys <> Keys.Control)
然后
End If
注意:因为我使用的是 KEYPRESS 事件而不是 keydown 事件,所以唯一e.key
可行的代码是e.keychar
||||| e.keycode
并且e.keyvalue
在此事件处理程序中不可用