- PR -

フォームの再描画を制御する

投稿者投稿内容
あび
ベテラン
会議室デビュー日: 2004/07/29
投稿数: 59
投稿日時: 2007-01-16 11:15
RadioButtonの選択によって、フォームに表示する内容を変えています。
全ての設定が終了するまで、フォームの表示を止めることはできますか?
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-01-16 11:38
System.Windows.Forms.Control#SuspendLayout
たしか、InitializeConmponent()メソッドの中で呼ばれていたはず。
Visual Studioが吐き出したコードに興味を持っていれば、気づくと思うんだけどなぁ。
あび
ベテラン
会議室デビュー日: 2004/07/29
投稿数: 59
投稿日時: 2007-01-16 13:28
かずくんさん
ご返答、ありがとうございます。
今、コントロールの配置は、予め全てやり終えた後に、
visibleプロパティで、フォームの表示を制御しています。
具体的には、同じ位置に複数のListBoxを配置し、RodioButtonの内容によって、
必要なListBoxのみ、visibleをTrueにしています。 
ご指摘のメソッドでは、このやり方には、対応できないようです。
他にやり方が無ければ、
この表示方法自体を考え直した方がよいかなと、思っています。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-01-16 13:46
設定内容のひとつとして、RadioButtonの選択によるListBoxの表示切替を行うみたいだけど、
ほかにどんな設定があるの?
はしょらず書いてね。

また、どのタイミングで描画を開始させるのか、も返答してね。
あび
ベテラン
会議室デビュー日: 2004/07/29
投稿数: 59
投稿日時: 2007-01-16 13:59
かずくんさん
言葉足らずですみません。

>設定内容のひとつとして、RadioButtonの選択によるListBoxの表示切替を行うみたい>だけど、ほかにどんな設定があるの?

まだよく考えていなくて、可能かどうかも分かりませんが、
予め、全てのListBoxを作成しておいて、設定内容によって必要なListBoxをフォームに配置したらどうかと思っています。そうすれば、SuspendLayoutメソッドが利きますよね。

>また、どのタイミングで描画を開始させるのか、も返答してね。

RadioButtonのCheckedChanged時に、描画を設定しています。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-01-16 15:20
う〜む。聞き方が悪かったかな?
全ての設定って、最初の投稿で記述していたから、複数設定項目があるものかと思ったんだけど、違う?

それとも設定の対象は、一組のラジオボタンとそれに影響されるListBoxのみ?
もしそうなら、Control#BringToFrontで前面に持ってくるっていうやり方もあるけど。

ここまで書いて、気づいたんだけど、
もしかして、変更前のListBoxを非表示にして、変更後のListBoxを表示させた時の、
一瞬、消えて、現れるというのを回避したいということかな?
もしそうなら、先に変更後のListBoxを表示させた後、変更前のListBoxを非表示にするといけるかもしれない。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-16 15:38
引用:

あびさんの書き込み (2007-01-16 11:15) より:

RadioButtonの選択によって、フォームに表示する内容を変えています。
全ての設定が終了するまで、フォームの表示を止めることはできますか?


System::Windows::Forms::Form->Invalidate メソッドのオーバーロードのひとつ。
System::Windows::Forms::Form->Update メソッド。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-16 15:40
引用:

かずくんさんの書き込み (2007-01-16 11:38) より:

たしか、InitializeConmponent()メソッドの中で呼ばれていたはず。
Visual Studioが吐き出したコードに興味を持っていれば、気づくと思うんだけどなぁ。


SuspendLayout メソッドはレイアウト ロジックを制御するものです。

わかりやすく言うと、Layout イベントに関係するプロパティ群のみが関係します。
とどのつまり、Size、Location、Anchor、Dock などのプロパティたちです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)