テキストボックスの文字列選択
TextBoxのメソッドにSelectAll()というものがあって、
これを使うと全ての文字列が選択された状態になる。
まぁ選択されてればコピーとかしやすいので、ユーザーインターフェースの
一環として、ちょっと小細工して使いやすく…、みたいにできる。
…で、テキストボックスがアクティブに変わったら(Enterイベント)、
SelectAll()メソッドで文字列選択、ってことを試してみたのだが、
どうしても選択されない。
選択範囲を指定するタイプのSelect()メソッドを使っても結果は同じ。
ただタブによるコントロール移動の場合はきちんと範囲選択されている事が判明。
ここでピーンときました。
「あぁ、マウスクリックで文字列選択が解除されてんじゃね?」
実際イベントの発生順を調べると、
Enter ⇒ Click
となっているので、なるほどなぁと。
とりあえずはClickイベントの中でもSelectAll()をコールすることでそれっぽくはなったけど、
厳密にはテキストボックスをクリックしたときだけ、範囲選択したいところ。
まぁ現時点でそこはそれほど重要じゃないし、使いやすくなったのでよしとする。
フラグとかそこらへん駆使して判定すればできそうだし。
結構イベント発生順を把握していないことでハマる事が多いので、注意しなきゃいかんなぁと思う。
最終更新:2009年02月09日 18:00