2月9日(2009)


テキストボックスの文字列選択

TextBoxのメソッドにSelectAll()というものがあって、
これを使うと全ての文字列が選択された状態になる。
まぁ選択されてればコピーとかしやすいので、ユーザーインターフェースの
一環として、ちょっと小細工して使いやすく…、みたいにできる。

…で、テキストボックスがアクティブに変わったら(Enterイベント)、
SelectAll()メソッドで文字列選択、ってことを試してみたのだが、
どうしても選択されない。
選択範囲を指定するタイプのSelect()メソッドを使っても結果は同じ。

ただタブによるコントロール移動の場合はきちんと範囲選択されている事が判明。
ここでピーンときました。

「あぁ、マウスクリックで文字列選択が解除されてんじゃね?」

実際イベントの発生順を調べると、

Enter ⇒ Click

となっているので、なるほどなぁと。

とりあえずはClickイベントの中でもSelectAll()をコールすることでそれっぽくはなったけど、
厳密にはテキストボックスをクリックしたときだけ、範囲選択したいところ。
まぁ現時点でそこはそれほど重要じゃないし、使いやすくなったのでよしとする。
フラグとかそこらへん駆使して判定すればできそうだし。

結構イベント発生順を把握していないことでハマる事が多いので、注意しなきゃいかんなぁと思う。
最終更新:2009年02月09日 18:00
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。