KeyboardShortcut コントロール
キーボード イベントをキャプチャして操作するために使用されるコントロール。
Note
説明書の全文とソース コードは、GitHub コード コンポーネント リポジトリ を参照してください。
説明設定
このコード コンポーネントは、keypress イベント ハンドラーを登録して、キャンバス アプリまたはカスタム ページ内でキーボード ショートカットを使用できるようにします。 モデル駆動型またはポータル アプリでの使用は意図されていません。
プロパティ
Property | 説明設定 |
---|---|
KeyConfig |
監視するキーボード ショートカットを示す文字列の配列。 文字列は、JSON を使用してシリアル化する必要があります (次のセクションで示す例)。 |
OnKey |
検出されたキーボード ショートカット。 |
KeyboardShortcuts
コード コンポーネントをフォームに追加した後、キーの組み合わせ配列を使用して KeyConfig
プロパティを構成します。
例:
["alt + r","alt + a","alt + d","alt + b","alt + p","alt + l","alt + t","alt + k"]
キーボードの組み合わせ文字列の詳細については、KeyboardJS ライブラリに移動してください。
Behavior
Keystroke イベントへの対応
キーの組み合わせを使用する場合、OnChange
イベントが発生します。 次に、OnKey
プロパティは組み合わせを保持します。
次のような OnChange
イベントが発生する可能性があります:
If( Self.OnKey = "alt + a",
SetFocus(txtTextbox1)
);
If( Self.OnKey = "alt + r",
UpdateContext({ ctxResizableTextareaEvent:"SetFocus" & Text(Rand()) })
);
If( Self.OnKey = "alt + b",
SetFocus(txtTextbox2)
);
If( Self.OnKey = "alt + k",
UpdateContext({ ctxPickerEvent:"SetFocus" & Text(Rand()) })
);
If( Self.OnKey = "alt + d",
UpdateContext({ ctxDropdownEvent:"SetFocus" & Text(Rand()) })
);
If( Self.OnKey = "alt + l",
UpdateContext({ ctxTagListEvent:"SetFocus" & Text(Rand()) })
);
If( Self.OnKey = "alt + t",
UpdateContext({ ctxTableEvent:"SetFocusOnRow" & Text(Rand()) })
);
このイベント ハンドラーは、使用されるキーの組み合わせを指定して、さまざまなコントロールにフォーカスを合わせます。
制限
一部のキーボード ショートカットは、アプリを編集するときに Power Apps Studio によって使用され、一部はブラウザーによって使用されます。 このため、ユーザーがアプリ内にフォーカスを置くまで、このコンポーネントはすべてのキーボード ショートカットで機能しません。
このコード コンポーネントは、キャンバス アプリとカスタム ページでのみ使用できます。
制限に関する注記の詳細については、GitHubドキュメントのセクションの コンポーネント設計の課題 をご覧ください。