- - PR -
ユーザコントロールの表示速度
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-06 15:34
環境
Windowsアプリケーション VB.net2005 LabelとTextを結合したユーザコントロールを作成しました。 FormにはTabControlを配置し、各TabPageに作成したユーザコントロールを 約20個程貼り付けました。 そうすると、Tabを切り替えると表示速度が遅くなるのです。 コントロールのOnLoadイベントは画面の起動時に発生するので Tabの切り替え時には何もイベントは発生しません。 ユーザコントロール側ではTextBoxやLabelの背景等を変更するだけで特別な処理は行っていません。 メモリは1GBあるので問題はないと思うのですが。。 誰かご存知の方がいらっしゃいましたら、教えていただけませんでしょうか。 よろしくお願いします。 | ||||||||
|
投稿日時: 2006-11-06 16:53
ユーザーコントロールのせいだと思ったのは何故でしょうか? 問題の切り分けを行ったからこそ言い切っているのだと思いますが、その決め手は何だったのでしょうか?
背景色が TabPage と同一でなければ、描画によるコストが発生します。 描画に関して言えば、今回はメモリのスペックが直接関係することはないと思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-11-06 17:13
じゃんぬねっとさん返信ございます。
書き方が悪く申し訳ありません。 ユーザーコントロールのせいだと思ったのは、 テスト画面を作成し、通常のTextBoxやComboBoxを同数TabPageに貼り付けて Tabの切り替えを行った所、表示速度は遅くならなかったからです。 作成したユーザコントロールの目的は、現在ActiveなコントロールのLabelのForeColorとTextBoxまたはComboBoxのBackColorを変更し、分かりやすくするためです。 ForeColor、BackColorの変更はユーザコントロール内のEnterイベント、Leaveイベントで行っています。 ブレイクポイントをユーザコントロール内の各プロパティのGet,Setに設定してTabの切り替えを行った所、特に処理は走りませんでした。 ですので、Tabの切り替え時には背景色の描画は行わないのかなと思ったのです。 | ||||||||
|
投稿日時: 2006-11-06 17:26
この検証をするのであれば、Panel コントロールに同数の、 TextBox と ComboBox を含めないと公平とは言えないと思います。 ついでに色も設定して、なるべく同じ条件にしてやらねばなりません。
取得する必要、設定する必要がなかっただけで、描画処理の有無とは全く関係ありません。 また、描画を疑うのであれば、標準のシステム色を使えば切り分けられます。 原因を特定するのであれば、正しく検証する必要があります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1