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

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

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

Re[1]: 書式をあらかじめ指定するための方法


(過去ログ 44 を表示中)

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

■23743 / inTopicNo.1)  書式をあらかじめ指定するための方法
  
□投稿者/ 山田太郎 (1回)-(2008/08/21(Thu) 12:50:52)

分類:[.NET 全般] 

VB2005を使用していますが、テキストボックスにあらかじめ3桁区切りの書式を指定した状態で入力させることってできるのでしょうか?
FormatNumber関数を用いてclick時などの何かしらのイベント発生時に関連付けて書式を変えるのではなくフォントをあらかじめプロパティで指定できるように
書式をあらかじめ指定したいのですが。
もしどうしてもコードによってしか制御できないようであれば、イベント発生時と関連づけないような方法があれば教えてください。
というのも数値入力用のテキストボックスが数百個もある状態なので、ひとつひとつの書式変更のコードを記述するのではなく、まとめて簡単に書式を変えたいのですが。
引用返信 編集キー/
■23746 / inTopicNo.2)  Re[1]: 書式をあらかじめ指定するための方法
□投稿者/ 魔界の仮面弁士 (833回)-(2008/08/21(Thu) 13:24:55)
No23743 (山田太郎 さん) に返信
> VB2005を使用していますが、テキストボックスにあらかじめ3桁区切りの書式を指定した状態で入力させることってできるのでしょうか?
TextBox を使って入力させるのではなく、ThousandsSeparator = True な NumericUpDown を使ってみては如何でしょう。


> イベント発生時と関連づけないような方法があれば教えてください。
TextBox の OnXXXXX 系の Protected メソッドをオーバーライドすれば良いかと。
引用返信 編集キー/
■23747 / inTopicNo.3)  Re[1]: 書式をあらかじめ指定するための方法
□投稿者/ 渋木宏明(ひどり) (859回)-(2008/08/21(Thu) 14:17:23)
渋木宏明(ひどり) さんの Web サイト
> もしどうしてもコードによってしか制御できないようであれば、イベント発生時と関連づけないような方法があれば教えてください。
> というのも数値入力用のテキストボックスが数百個もある状態なので、ひとつひとつの書式変更のコードを記述するのではなく、まとめて簡単に書式を変えたいのですが。

そういう時には「拡張プロバイダ」を使い(作り)ましょう。

「拡張プロバイダ」を使えば、TextBox を派生することなく「TextBox にプロパティを追加したように見せかける」ことができます。

「拡張プロバイダ」の中で、「拡張プロバイダ」と関連付けられた TextBox のイベントを捕捉して、TextBox に対して必要な操作を行ってやれば実現できると思います。

コントロールを派生で拡張する手法はどん詰まりになる可能性が高い(=.NET では多重継承が使えないので、複数の拡張要件の集約時に問題を生じやすい)ので、例えばこういったケースではお勧めしません。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -