コントロール

[C#] Enterキーでフォーカスを移動する

Enterキーによるフォーカス移動

通常、Tabキーを押すことでフォームのコントロール間を、指定したタブオーダー順に移動します。

しかし、一般的なユーザーからするとTabキー自体があまり使用しないキーであるため、せっかく設定したタブストップを使用してもらえないかもしれません。

タブストップ機能は、マウスをいちいちコントロールの位置へもっていく必要がなく、使用すればかなり便利な機能です。

それではどうすればタブストップ機能をユーザーに使ってもらいやすくなるでしょうか。

それはやはり、有名なアプリケーション等でも設定されていることが多い、Enterキーによるコントロール間のフォーカス移動ではないでしょうか。

今回は、Tabキー同様、Shiftキーを押しながらEnterキーを入力した場合は、タブオーダーの1つ前のコントロールに戻る制御も併せてサンプルコードをご紹介します。

今回ご紹介するコードは、フォームのKeyDownイベントに設定しましょう。

なお、フォームのキーイベントを各コントロールに反映するには、事前にKeyPreviewプロパティの設定をする必要がありますので、わからない方は以下記事をご参照ください。

[C#] 全コントロールのキーイベントをフォームのキーイベントで処理する(KeyPreview)コントロールのキーイベントをフォームで処理する 通常、KeyPressイベントやKeyDownイベント等、コントロールに対してキー入力...

それではサンプルを見てみましょう。

上記を実行することで、Tabキーを押したときと同じようにEnterキーでコントロール間のフォーカスの移動を行うことが可能になります。

なお、フォーカスの移動に使用しているSelectNextControlメソッドについては、以下をご参照ください。

[C#] 次のコントロールへフォーカスを移す(SelectNextControl)タブオーダー順で前後のコントロールをアクティブにする 現在フォーカスが当たっているコントロールから、タブオーダー順で1つ次、または1つ...

 
 
以上が、Enterキーでフォーカスを移動する方法です。
ぜひ参考にしてみてください。