1

KeyDown イベント ハンドラーがアタッチされた WPF のウィンドウがあります。

ユーザーが数字キー (0 ~ 9) を押すと、イベントに応答します。ラジオボタンを選択するためのショートカット キーとして 0 ~ 9 を使用します。例えば。キー 3 を押すと、3 番目のラジオボタンが選択されます。

問題は、ユーザーが TextBox 内の数字キーを押したときに、キープレスをショートカットとして処理したくないということです。TextBox のデフォルトの実装を維持したいからです。

現在、ユーザーが TextBox 内で 3 を押すと、TextBox のテキストは 3 に設定されますが、3 番目のラジオボタンも選択されます。

ユーザーが TextBox 内でキーを押したときに TextBox が e.Handled を true に設定すると思っていましたが、そうではありません。

また、TextBox は単なる例です。ユーザーが階層内の他の入力コントロールに何かを入力した場合、KeyDown イベントに応答したくありません。

これを解決するには、ルーティングされたイベントをよりよく理解する必要があると思いますか、それとも別の方法で解決しますか?

4

2 に答える 2

0

(あなたの場合)のOriginalSourceプロパティを確認できます。の場合は、取り扱わないでください。そうでない場合は、選択ロジックを実行します。RoutedEventArgsKeyPressEventArgsTextBoxRadioButton

于 2011-01-27T10:12:12.613 に答える
0

フォームを使用してみてください。KeyPreviewプロパティを使用し、ActiveControlプロパティを使用してロジックをトリガーします

于 2011-01-27T10:18:55.780 に答える