« 月曜 夜7時、 やつらが帰ってくる! (10) | トップページ | テスト技術者資格認定試験 »

2007年12月20日 (木)

[WPF] Window 側で、 コントロールのフォーカスを制御する

WPF の KeyDown / KeyUp ルーティングイベントは、 トンネリング / バブリングしてくれるので…
Window で、 PreviewKeyDown を捕まえて、 例えば Return キーだったら殺して ( e.Handled = true; ) から、 ルーティング先に対して MoveFocus( new TraversalRequest( FocusNavigationDirection.Next ) ) を投げてやれば、 エンターキーでフォーカス移動というよくある仕様が実現できます。

で、 テキストボックスにフォーカスが来たらテキストを選択状態にする、 というよくある仕様は…
これは出来ないだろ~、 と思っていたら。
なんと、 GotKeyboardFocus イベントもバブルだった! (^^;
ので、 このイベントを拾って、 e.NewFocus ( フォーカスの遷移先のコントロール ) がテキストボックスだったら SelectAll() を投げて完了 f(^^;

# てっきりダイレクトだと思ってたよ~ orz

|

« 月曜 夜7時、 やつらが帰ってくる! (10) | トップページ | テスト技術者資格認定試験 »

* プログラミング ( WPF )」カテゴリの記事

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/17430678

この記事へのトラックバック一覧です: [WPF] Window 側で、 コントロールのフォーカスを制御する:

« 月曜 夜7時、 やつらが帰ってくる! (10) | トップページ | テスト技術者資格認定試験 »