C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: focus()のとき、テキストが全選択(反転)される


(過去ログ 23 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■10146 / inTopicNo.1)  focus()のとき、テキストが全選択(反転)される
  
□投稿者/ カオリ (1回)-(2007/11/12(Mon) 10:28:29)

分類:[C#] 

visual studio 2005[C#]

サイトを検索してみたところ見つからないので質問させていただきます。

テキストにフォーカスを設定した時、テキスト内が全選択される場合とされない場合があり事象を調べてみたところ
プログラム内でテキストの値を設定した後フォーカスを設定すると全選択されてしまうようです。

もし理由をご存知の方いらっしゃったらおしえていただけないでしょうか?

【全選択される場合】
textbox.text = "aaa";
textbox.focus();

【全選択されない場合】
(手入力でテキストを変更後ボタンイベントなどで)
textbox.focus();


宜しくお願いいたします。
引用返信 編集キー/
■10150 / inTopicNo.2)  Re[1]: focus()のとき、テキストが全選択(反転)される
□投稿者/ カンタービレ (39回)-(2007/11/12(Mon) 11:40:33)
No10146 (カオリ さん) に返信
> テキストにフォーカスを設定した時、テキスト内が全選択される場合とされない場合があり事象を調べてみたところ
> プログラム内でテキストの値を設定した後フォーカスを設定すると全選択されてしまうようです。
>
> もし理由をご存知の方いらっしゃったらおしえていただけないでしょうか?
>
そういう仕様じゃないかと思いマス。(まんまでスミマセン)
TextBoxのOnGotFocusイベント時の処理としてSelectionLengthが0でかつマウスボタンが押されてなければ全選択。
となっているようデス。要はユーザー入力以外の値セットがあった場合、フォーカス時には全選択というのが
仕様となっている、ということデスネ!

回避方法としては、
@Focus後にSlectionLengthを0にセット。(先頭にカーソルがいきマス)
Atextboxの子クラスを作成し、OnGotFocusイベントをオーバーライド(実験してません)
などが考えられマス。
引用返信 編集キー/
■10174 / inTopicNo.3)  Re[2]: focus()のとき、テキストが全選択(反転)される
□投稿者/ カオリ (3回)-(2007/11/12(Mon) 20:34:45)
カンタービレ様

ご回答ありがとうございました。
やっぱり仕様なんですよね(笑)

今回、focusで設定していたのをselectAllに変更すると
この事象はおきなくなりました。
(たぶん根本的な解決ではないとは思いますが。。)

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -