ここではフォーム上でファンクションキーの押下時と、ファンクションキーに対応したボタンの押下時の動作を連動させる方法を紹介します。
目次
ファンクションキーとボタンの動作を連動させる
フォームのKeyPreviewプロパティをTrueに設定にしておきます。
ボタンのクリックイベントを発生させる実装例
以下は [F1] キー押下時と [Button1] ボタンのクリックイベントを連動する例です。
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
' F1キーを押した場合
If e.KeyCode = Keys.F1 Then
Button1.PerformClick() ' Buttonコントロールのクリックイベントを発生させる
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MessageBox.Show("Button1がクリックされました。")
End Sub
押されたらファンクションキーにより処理を分岐する実装例
以下は [F1] キー押下時と [Button1] ボタンのクリックイベント、[F2] キー押下時と [Button2] ボタンのクリックイベントを連動する例です。
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
' ファンクションキーによりボタンのクリックイベントを発生させる
Select Case e.KeyCode
Case Keys.F1 ' F1キー
If Button1.Enabled = True Then ' ボタン使用不可をチェックする
Button1.PerformClick() ' Button1のクリックを実行
End If
e.Handled = True ' KeyDownイベントを発生させない
Case Keys.F2 ' F2キー
If Button2.Enabled = True Then ' ボタン使用不可をチェックする
Button2.PerformClick() ' Button2のクリックを実行
End If
e.Handled = True ' KeyDownイベントを発生させない
Case Keys.F3 ' F3キー
e.Handled = True ' KeyDownイベントを発生させない
End Select
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MessageBox.Show("Button1がクリックされました。")
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
MessageBox.Show("Button2がクリックされました。")
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
MessageBox.Show("Button3がクリックされました。")
End Sub
以上、ファンクションキーとボタンの動作を連動させる方法について解説しました。