KeyPress事件中的多个Keypress检测

时间:2014-04-03 16:07:47

标签: vb.net textbox keypress control-characters modifier-key

我使用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.keycodee.keyvalue在此事件处理程序中无法使用

0 个答案:

没有答案