2014-09-13 3 views
0

Я хочу, чтобы поймать KeyDown событие так, когда я нажимаю CTRL +W будет закрывать форму. В настоящее время мой код:ключ вниз по Ctrl + W Виль триггер с Ctrl + Shift + W WinForms

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) он также будет return true и выполнить метод closeForm().

Любая идея о том, как предотвратить CTRL +независимо + W?

ответ

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 гораздо чище при поиске одной определенной комбинации клавиш.

Смежные вопросы