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

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

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

Re[2]: MaskdTextBoxでのSelectAll


(過去ログ 31 を表示中)

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

■15005 / inTopicNo.1)  MaskdTextBoxでのSelectAll
  
□投稿者/ taguchi (23回)-(2008/03/01(Sat) 18:18:32)

分類:[C#] 

こんにちわ。
毎度恐れ入ります。

環境:VisualStuio2005 C#

コンポーネントMaskdTextBoxのMaskを設定(9999)等を設定した場合、
そのテキストボックスのTEXTに対してSelectAll等の範囲指定を実行させても、
選択できません。こう言う仕様なのでしょうか?




引用返信 編集キー/
■15006 / inTopicNo.2)  Re[1]: MaskdTextBoxでのSelectAll
□投稿者/ やじゅ (198回)-(2008/03/01(Sat) 19:03:34)
やじゅ さんの Web サイト
No15005 (taguchi さん) に返信
> コンポーネントMaskdTextBoxのMaskを設定(9999)等を設定した場合、
> そのテキストボックスのTEXTに対してSelectAll等の範囲指定を実行させても、
> 選択できません。こう言う仕様なのでしょうか?
> 

明示的にフォーカスを設定するとできるようです。
private void maskedTextBox1_Enter( object sender, EventArgs e ) 
{ 
    this.maskedTextBox1.Focus(); 
    this.maskedTextBox1.SelectAll(); 
} 

MaskedTextBox.SelectAllメソッドが意図したように機能しない
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=435580&SiteID=7

引用返信 編集キー/
■15010 / inTopicNo.3)  Re[2]: MaskdTextBoxでのSelectAll
□投稿者/ taguchi (24回)-(2008/03/01(Sat) 22:10:10)
やじゅ さん
アドバイスありがとうございました。

> 明示的にフォーカスを設定するとできるようです。
> private void maskedTextBox1_Enter( object sender, EventArgs e ) 
> { 
>     this.maskedTextBox1.Focus(); 
>     this.maskedTextBox1.SelectAll(); 
> } 

なるほど。フォーカスをセットしないと上手く動かないみたいですね。

> MaskedTextBox.SelectAllメソッドが意図したように機能しない
> http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=435580&SiteID=7

上記リンクにありますように、Focusメソッドを使いたくなかったので、
リンク内コードを参考にして、非同期の実行をテストしてみました。

        public delegate void InvokeSelectAll(MaskedTextBox pTarget);//デリゲート
        private void MaskedTextBoxSelectAll(MaskedTextBox pTarget)
        {
            if (pTarget != null) pTarget.SelectAll();
        }
        private void maskedTextBox1_Enter(object sender, EventArgs e)//イベント
        {
            BeginInvoke(new InvokeSelectAll(MaskedTextBoxSelectAll), sender);//非同期実行

        }

これで上手く動くようになりました。
有難うございました。

#上記コードでおかしな点がありましたら指摘ねがいます。
#C#では非同期実行で解決する事が多いのですが、これがC#の肝なんでしょうか?

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -