ここではフォーム上にコントロール配列でファンクションキー(F1~F12)ボタンを作成する方法について紹介します。
目次
フォームを作成する
最初に以下のようなファンクションキー(F1~F12)のボダンがあるフォームを作成します。F2キーだけ Enabled を False にしておきます。また、テキストボックスは押されたファンクションキーの名前を表示させるために用意します。
ファンクションキーのコントロール配列を作成する
フォームのロード時にファンクションキーのコントロール配列を作成します。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
' フォームでコントロールのキーイベントを受け取る
Me.KeyPreview = True
' コントロール配列にボタンを設定する
ArrFKey = {Me.F1, Me.F2, Me.F3, Me.F4, Me.F5, Me.F6, Me.F7, Me.F8, Me.F9, Me.F10, Me.F11, Me.F12}
' ボタンコントロールのクリックイベント処理を定義する
For Each btn As Button In ArrFKey
AddHandler btn.Click, AddressOf ButtonClick
Next
End Sub
ボタン押下時のイベントを作成する
ボタン押下時のイベントを作成します。フォーム上のボタンをクリックするとテキストボックスに押されたファンクションキーの名前を表示させます。
Private Sub ButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)
' ボタンのテキストを取得する
Dim strFKey As String = DirectCast(sender, Button).Text
TextBox1.Text = String.Format("{0}キーが押されました。", strFKey)
End Sub
フォームのKeyDownイベントを作成する
フォームのKeyDownイベントを作成します。F1~F12キーが押されたらボタンのイベントを発生させます。
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
If e.KeyCode >= Keys.F1 AndAlso e.KeyCode <= Keys.F12 Then
' ボタンのClickイベントを発生させる
ArrFKey(e.KeyCode - Keys.F1).PerformClick()
End If
End Sub
動作を確認する
F1~F12キーを押してもF1~F12ボタンをクリックしても同じイベントが発生して、テキストボックスにファンクションキーの名前が表示されました。F2は Enabled を False にしていますのでイベントは設定しません。
以上、フォーム上にコントロール配列でファンクションキー(F1~F12)ボタンを作成する方法について解説しました。