dポイントプレゼントキャンペーン実施中!

Visual Studio 2005と.NET Framework 2.0を使っています。

ToolStripContainer内のToolStripの状態によらず中央のパネルのサイズを一定に保ちたいのですが、どうすればよいのでしょうか。

以下は私の試行です。

中央のパネルはToolStripContainerのContentPanelプロパティから取得できるので、次のようにしました。
(ToolStripContainerはForm上に配置され、名前はToolStripContainer1です。)

[C#]
ToolStripContainer1.ContentPanel.Size = new Size(640, 480);

サイズを一定に保つことは置いておいて、まずは、これをFormの構築時に実行するようにしてみました。

しかし、このように記述し、実行してもToolStripContainer1には何の効果もありません。

中央のパネルのサイズを設定するという初歩で、壁に当たっております。

解決法をご存知の方、御回答をお願いいたします。

A 回答 (1件)

中央のパネルのサイズっていうのは、親(?)にあたるであろうtoolStripContainer1のSizeでいいんじゃないでしょうか?



この先の説明は、面倒なので全部Heightについてですが、Widthも同じと考えてください。

TopToolStripPanelとか、BottomToolStrip・・・が表示されている状態においては、高さなら
toolStripContainer1.Height - toolStripContainer1.TopToolStripPanel.Height - toolStripContainer1.BottomStripPanel.Height
がContentPanel.Heightになるみたいですから、
toolStripContainer1についてSizeを設定してやればいいと思いますょ。

どうも(Top,Bottom)toolStripPanelは、その上にToolStripとかMenuStripを乗せない限りは、非表示ということで、Heightが0になっていますから、特別乗せていないなら気にする必要はないんだと思います。仮に何か乗せている状態で高さを480にしたいとしたら、

toolStripContainer1.Height = 480 + toolStripContainer1.TopToolStripPanel.Height + toolStripContainer1.BottomToolStripPanel.Height;

としてやれば、中央のパネルサイズは480になってると思います。

・・・なんかよぅ分からん説明でスマソ
    • good
    • 0
この回答へのお礼

ありがとうございます!

足し算によってToolStripContainerの幅や高さを決めるという方法ですね。試してみたいと思います。

やはり、ContentPanelのSizeプロパティに新しいSizeを設定するといった簡単な方法では解決できないのでしょうか。

中央のパネルのサイズを一定に保つということで、
残る問題はToolStripPanel上のToolStrip等が
他のToolStripPanel上に移動されたことを検知し、
中央のパネルのサイズを調整する必要があることです。Layoutイベントなどを試してみたいと思います。

お礼日時:2006/04/12 19:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!