【问题标题】:Check if DELETE key is pressed?检查是否按下了 DELETE 键?
【发布时间】:2011-04-08 00:27:53
【问题描述】:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

使用 e.keyValue 检查 DELETE 键所需的 keyValue 是什么?

【问题讨论】:

    标签: vb.net winforms visual-studio


    【解决方案1】:

    KeyEventArgs 对象包含一个名为“KeyCode”的成员,您可以将其与“Keys”枚举进行比较。

    请注意,如果某些键由默认窗口系统处理,则它们可能不会引发 KeyDown 事件。我不确定,我现在无法检查,但您可能不会收到 Tab、Delete、Enter 等键的 KeyDown 事件。

    您通常可以这样做(这是 C#,不是 VB,但应该类似):

    public void MyControl_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Delete)
        {
            // delete was pressed
        }
    }
    

    【讨论】:

      【解决方案2】:

      如果您设置了表单的 KeyPreview 属性,那么表单将在事件传递给具有焦点的控件之前接收关键事件。例如,如果表单上有文本框和按钮,通常它们(具有焦点的控件)将捕获按键事件。所以一定要设置KeyPreview=true

      使用它来捕获关键代码。

      Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
          If e.KeyCode = Keys.Delete Then
              'todo
          End If
      End Sub
      

      【讨论】:

        【解决方案3】:

        比较 e.keyValueKeys.Delete

        【讨论】:

          【解决方案4】:

          检查Keys 枚举...

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-11-12
            • 2014-01-15
            • 2023-03-03
            • 2011-07-27
            • 2012-06-26
            • 2014-08-31
            • 1970-01-01
            相关资源
            最近更新 更多