检查是否按下DELETE键?

时间:2011-04-08 00:27:54

标签: vb.net winforms visual-studio

Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

使用e.keyValue检查DELETE键需要什么keyValue?

4 个答案:

答案 0 :(得分:9)

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
    }
}

答案 1 :(得分:3)

如果您设置了表单的 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

答案 2 :(得分:2)

检查Keys枚举...

答案 3 :(得分:2)

e.keyValueKeys.Delete

进行比较