- - PR -
フォームの再描画を制御する
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-01-16 11:15
RadioButtonの選択によって、フォームに表示する内容を変えています。
全ての設定が終了するまで、フォームの表示を止めることはできますか? | ||||
|
投稿日時: 2007-01-16 11:38
つSystem.Windows.Forms.Control#SuspendLayout
たしか、InitializeConmponent()メソッドの中で呼ばれていたはず。 Visual Studioが吐き出したコードに興味を持っていれば、気づくと思うんだけどなぁ。 | ||||
|
投稿日時: 2007-01-16 13:28
かずくんさん
ご返答、ありがとうございます。 今、コントロールの配置は、予め全てやり終えた後に、 visibleプロパティで、フォームの表示を制御しています。 具体的には、同じ位置に複数のListBoxを配置し、RodioButtonの内容によって、 必要なListBoxのみ、visibleをTrueにしています。 ご指摘のメソッドでは、このやり方には、対応できないようです。 他にやり方が無ければ、 この表示方法自体を考え直した方がよいかなと、思っています。 | ||||
|
投稿日時: 2007-01-16 13:46
設定内容のひとつとして、RadioButtonの選択によるListBoxの表示切替を行うみたいだけど、
ほかにどんな設定があるの? はしょらず書いてね。 また、どのタイミングで描画を開始させるのか、も返答してね。 | ||||
|
投稿日時: 2007-01-16 13:59
かずくんさん
言葉足らずですみません。 >設定内容のひとつとして、RadioButtonの選択によるListBoxの表示切替を行うみたい>だけど、ほかにどんな設定があるの? まだよく考えていなくて、可能かどうかも分かりませんが、 予め、全てのListBoxを作成しておいて、設定内容によって必要なListBoxをフォームに配置したらどうかと思っています。そうすれば、SuspendLayoutメソッドが利きますよね。 >また、どのタイミングで描画を開始させるのか、も返答してね。 RadioButtonのCheckedChanged時に、描画を設定しています。 | ||||
|
投稿日時: 2007-01-16 15:20
う〜む。聞き方が悪かったかな?
全ての設定って、最初の投稿で記述していたから、複数設定項目があるものかと思ったんだけど、違う? それとも設定の対象は、一組のラジオボタンとそれに影響されるListBoxのみ? もしそうなら、Control#BringToFrontで前面に持ってくるっていうやり方もあるけど。 ここまで書いて、気づいたんだけど、 もしかして、変更前のListBoxを非表示にして、変更後のListBoxを表示させた時の、 一瞬、消えて、現れるというのを回避したいということかな? もしそうなら、先に変更後のListBoxを表示させた後、変更前のListBoxを非表示にするといけるかもしれない。 | ||||
|
投稿日時: 2007-01-16 15:38
System::Windows::Forms::Form->Invalidate メソッドのオーバーロードのひとつ。 System::Windows::Forms::Form->Update メソッド。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-01-16 15:40
SuspendLayout メソッドはレイアウト ロジックを制御するものです。 わかりやすく言うと、Layout イベントに関係するプロパティ群のみが関係します。 とどのつまり、Size、Location、Anchor、Dock などのプロパティたちです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |