按下shift键时键入数字vb.net

时间:2012-10-21 09:55:47

标签: c# wpf vb.net keyboard-events keyboard-hook

我正在使用vb.net来编辑gridview值,当按下shift时我想在同一时间编辑属于一个组的多个单元格值,现在我的问题是当按下shift并且我点击一个数字键它会给我一个符号

例如

  SHIFT+1 = !
  SHIFT+2 = @
  and so on

但我希望它是

SHIFT+1 = 1
SHIFT+2 = 2
and so on

是否有内置功能来执行此操作?

如果没有,那么我想我需要编写一个函数来执行此操作,其功能与按下shift+1时相同,然后键盘输入为1而不是!

关于如何在vb.net中实现此类行为的任何想法? 并且不要告诉我使用ctrl因为我已经将它用于另一件事而且在使用ctrl时它不会输入:D

1 个答案:

答案 0 :(得分:1)

你可以使用这样的天真例行程序。如果您需要逗号等,请根据需要进行修改:

Private Sub TextBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    If e.Shift AndAlso
       (Keys.KeyCode And e.KeyData) >= Keys.D1 AndAlso
       (Keys.KeyCode And e.KeyData) <= Keys.D9 Then

        TextBox1.SelectedText = ChrW((Keys.KeyCode And e.KeyData))
        e.SuppressKeyPress = True

    End If
End Sub