Enterキーでフォーカス遷移
汎用機からのリプレースなど業務系にシステムで見られる要望に、Enterキーでのフォーカス移動の話が出てきます。(本来はTabでしょって言われますけど…)
Enterキーでフォーカスを移動する派生クラスを作成しておくと便利そうですね。
まず、フォームが先にキーイベントを受取るようKeyPreviewプロパティをTrueにします。
Protected Overridable Sub B3APP_Form_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Enter Then
If e.Control = False Then
'次のTabIndexのコントロールへフォーカスを遷移する
'[Shift+TAB],[Shift+Enter]の場合はフォーカスを反対に遷移する
Me.SelectNextControl(Me.ActiveControl, Not e.Shift, True, True, True)
End If
End If
End Sub
Protected Sub B3APP_Form_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = ControlChars.Cr Then
'e.Handled = True 'フォーカス遷移後にビープ音が鳴らないようにする。
End If
End Sub
上記のようなフォームをベースに派生してアプリケーションを作ると楽ができそうです。