用ctrl + shift + W winForms按下ctrl + W wil触发器

时间:2014-09-13 01:50:02

标签: .net vb.net winforms events keydown

我想捕获keydown事件,所以当我按 CTRL + W 时,它将关闭表单。 目前我的代码:

Private Sub Main_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    If e.Control AndAlso e.KeyCode = Keys.W Then
        closeForm()
    End If
End Sub

代码工作正常,但是当我按 CTRL + 无论 + W (示例 CTRL + SHIFT + W )它也将返回true并执行closeForm()方法。

关于如何防止 CTRL + + W 的任何想法?

1 个答案:

答案 0 :(得分:1)

使用e.KeyData属性:

If e.KeyData = (Keys.Control Or Keys.W) Then

这将排除 Ctrl + W 以外的所有组合。如果你想更像你已经拥有的那样,那就是:

If e.Control AndAlso Not e.Shift AndAlso Not e.Alt AndAlso e.KeyCode = Keys.W Then

正如您所看到的,在查找一个特定的组合键时,使用e.KeyData会更加清晰。