1

ショートカットキーをキャッチしようとしています。KeyDown Events管理方法について説明が必要です。これを例に取りましょう:

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

    If e.Control And e.KeyCode = Keys.W Then
        MessageBox.Show("Ctrl+W")
        End If

    If e.Control And e.KeyCode = Keys.F5 Then
          MessageBox.Show("Ctrl+F5")
        End If

  End Sub

完璧に動作します。どちらを最初に押しても、何回押しても、両方MessageBoxがポップアップします。sub 内の順序を単純に変更すると、次のようになります。

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

    If e.Control And e.KeyCode = Keys.F5 Then
          MessageBox.Show("Ctrl+F5")
        End If

    If e.Control And e.KeyCode = Keys.W Then
        MessageBox.Show("Ctrl+W")
        End If

  End Sub

このアプローチでは、Ctrl+F5ポップアップのみが表示されます。表示する方法はありませんCtrl+W...理由はわかりますか?

4

1 に答える 1

0

あなたは単に使用することができます:

If e.Control Then

    If e.KeyCode = Keys.F5 Then
        MessageBox.Show("Ctrl+F5")
    Else
        If e.KeyCode = Keys.W Then
           MessageBox.Show("Ctrl+W")
        End If

    End If

End If
于 2013-04-11T13:31:11.757 に答える