0

私のアプリは Visual Basic 2010/2012 に基づいています (すべてのコードは両方の言語で同じです)。'F' or 'G'どちらかがキーボードから押されたときに、特定のことをしようとしています。使用するなど、すべてのことを試しましKeypress, keydown and keyup eventsたが、すべて機能しませんでした。

これが私のアプリのサンプルコードです。これは、ユーザーがどのキーを押したかをメッセージ ボックスに表示するだけで、これも機能しません。つまり、何も起こらず、エラー メッセージも表示されません。

   Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown

    If (e.KeyCode = Keys.Control AndAlso (e.KeyCode = Keys.F)) Then
        MessageBox.Show("pressed F")
    ElseIf (e.KeyCode = Keys.Control AndAlso (e.KeyCode = Keys.B)) Then
    MessageBox.Show("pressed B")
    End If
End Sub`
4

3 に答える 3

0

キーを押した状態で

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
dim kc as string = e.KeyChar

if kc = "F" OR kc = "G" then msgbox "Horeeee"
End Sub
于 2013-05-12T15:46:48.750 に答える
0

DRY原則を使用してハンドラーを最適化する私のKeyDown見解(=同じことを繰り返さないでください):

Private Sub Form1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
  If Not e.Control Then Exit Sub
  Select Case e.KeyCode
    Case Keys.F : MessageBox.Show("Ctrl-F")
    Case Keys.B : MessageBox.Show("Ctrl-B")
  End Select
End Sub
于 2013-05-12T15:49:53.337 に答える