DOBON.NET DOBON.NETプログラミング掲示板過去ログ

MDI layoutに関する問題

環境/言語:[windows2000 VS.NET C#]
分類:[.NET]

開発環境:VS.NET 2003 C#
問題:Form1(親),Form2(子),Form3(子)があります。
@.Form2,Form3はForm1(親)のクライアント領域内に水平に並べて表示します。
A.Form2のサイズを変更する時に、Form3のサイズも同時に変化して、式Form2.Width+Form3.Width=Form1.Widthを満足できるように。

一見、簡単でと思いますがなかなかできませんでした。
試した方法は以下に:
@Form2、Form3のanchorを設定します、そうすると、例えForm2のサイズ変更しでも、Form3をクッリクすると、Form2は元のサイズを戻ってしまうんです。
Aanchorを設定しないの場合、上のことがならないが、Form2,Form3の位置が指定した位置に表示してくれない
B.anchorを設定しない、Form1のLayoutを設定すれば、
this.LayoutMdi(MidLayout.TileHorizontal);
いいと思いますが、結果は何も変わりありませんでした。

多分Layoutの利用方法が間違っていると思いますが、誰が教えていただきませんでしょうか。
  • 題名: Re[1]: MDI layoutに関する問題
  • 著者: ピラルク
  • 日時: 2004/01/31 22:48:09
  • ID: 2323
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
こんにちは、crow001さん。ピラルクです。

> this.LayoutMdi(MidLayout.TileHorizontal);
...
> 結果は何も変わりありませんでした。

Form1_Loadで行うからでは?
Form1_Activatedなりで試してみてください。
もともとメニュー(並べて表示)のヘルパのようだし。
でもこれは均等割りになるからNGですよね。

イベント拾って連鎖しないようにFlag使って
地道に再配置するか、或いはTimerでレイアウト
ロジック走らせるか、そういうLayoutクラス作るか、
Spliterを使う方針で全体を見直すとか、
になるんではないでしょうか。

DOBON.NET | プログラミング道 | プログラミング掲示板