Enterキーで次のコントロールにフォーカスを移動するには?
対象製品
InputMan for Windows Forms 10.0J
詳細
InputMan for Windows Forms 10.0Jでは、ショートカットコンポーネントを用いることで簡単にフォーカス移動などの動作をコントロールに設定することができます。
具体的には、各コントロールごとにショートカットキーを設定する方法と、ショートカットコンポーネントのShortcutKeysプロパティに ショートカットキーを登録し、アプリケーション全体で使用されるショートカットキーを設定する方法があります。
■コントロールごとにショートカット機能を設定
デザイン画面で設定する方法
コードから設定する実装例
[Visual Basic]
[C#]
■アプリケーション全体にショートカット機能を設定
ShortcutKeysプロパティに登録する方法では、ショートカットキーが押されると発生するShortcutKeyDownイベントをハンドルし、次のコントロールにフォーカスを移動するよう設定します。
[Visual Basic]
[C#]
具体的には、各コントロールごとにショートカットキーを設定する方法と、ショートカットコンポーネントのShortcutKeysプロパティに ショートカットキーを登録し、アプリケーション全体で使用されるショートカットキーを設定する方法があります。
■コントロールごとにショートカット機能を設定
- デザイン画面でショートカットキーを設定したいコントロールをクリックし、プロパティウィンドウの 「gcShortcut1のShortcuts」項目をクリックします。表示されるダイアログボックスで以下の操作を行います。
- 「ショートカットキー:」ペインでショートカットキーとなるキーを指定します。「リストから選択」をチェックして「Return」を選択します。
- 「動作:」ペインで「NextControl」を選択します。
- ダイアログ中央にある「追加」ボタンをクリックします。「現在設定されているショートカットキー:」ペインにショートカットが追加されます。
- 現在の設定をフォーム上の同一クラスの他のコントロールにも適用するには、「同種のコントロールにも適用」 をチェックします。
- 〈OK〉ボタンをクリックします。
[Visual Basic]
Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Enterキーで次コントロールにフォーカスを移動します。 GcShortcut1.GetShortcuts(GcTextBox1).Add(Keys.Enter, GcShortcut1, "NextControl") End Sub
[C#]
private void Form1_Load( object sender, EventArgs e ) { // Enterキーで次コントロールにフォーカスを移動します。 gcShortcut1.GetShortcuts(gcTextBox1).Add(Keys.Enter, gcShortcut1, "NextControl"); }
■アプリケーション全体にショートカット機能を設定
ShortcutKeysプロパティに登録する方法では、ショートカットキーが押されると発生するShortcutKeyDownイベントをハンドルし、次のコントロールにフォーカスを移動するよう設定します。
[Visual Basic]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Enterキーによるショートカットキーを設定します。 GcShortcut1.ShortcutKeys.Add(Keys.Return) End Sub Private Sub GcShortcut1_ShortcutKeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles GcShortcut1.ShortcutKeyDown ' フォームのアクティブ・非アクティブに関わらす発生するため、 ' フォームがアクティブな状態のときだけフォーカスを移動します。 If Me Is Form.ActiveForm Then Me.SelectNextControl(Me.ActiveControl, True, True, True, True) ' イベント処理を終了します。 e.Handled = True End If End Sub
[C#]
private void Form2_Load(object sender, EventArgs e) { // Enterキーによるショートカットキーを設定します。 gcShortcut1.ShortcutKeys.Add(Keys.Return); } private void gcShortcut1_ShortcutKeyDown(object sender, KeyEventArgs e) { // フォームのアクティブ・非アクティブに関わらす発生するため、 // フォームがアクティブな状態のときだけフォーカスを移動します。 if (this == Form.ActiveForm) { this.SelectNextControl(this.ActiveControl, true, true, true, true); // イベント処理を終了します。 e.Handled = true; } }