作成日: 2022/03/14 最終更新日: 2022/03/30
文書種別
使用方法
詳細
InputMan for Windows Forms 11.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;
}
}