0

我正在使用 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在此事件处理程序中不可用

4

0 回答 0