その1:[WPF][C#]テキストボックスをフォーカスがくると全選択状態にしたい
その1だと、マウスキーでフォーカス移動した際に全選択にならないという問題がありました。
一応マウスでのフォーカス移動時でも動作する方法として次のようなやり方があります。
前回のコードのtextBox_GotFocusメソッドの中身を以下のようにします。
- TextBox textBox = e.OriginalSource as TextBox;
-
- if (textBox == null)
- return;
-
-
- Action action = textBox.SelectAll;
- Dispatcher.BeginInvoke(action);
TextBox textBox = e.OriginalSource as TextBox;
if (textBox == null)
return;
// 後で全選択処理をする
Action action = textBox.SelectAll;
Dispatcher.BeginInvoke(action);
動くには動くけど、100%うまくいくのかは自身がないです…
コメントに指摘されていた、Expression Blend 3でサポートされているBehaviorですが、正式版じゃないものを入れるのは嫌だし、正式版は高くてお財布がつらいので試すのはまたの機会にしてみたいと思います。
えムナウさんが示してくれたサイトを見ると、簡単に出来そうなので、期待大です。
出来ればWPF4.0あたりで標準で入り込んでくれないかしら。