3

折りたたみ可能なグループボックスを備えたフォームがあります(http://www.codeproject.com/Articles/12835/XP-Style-Collapsible-GroupBoxから入手しました)。基本的に、フォームの詳細オプションを表示/非表示にするために使用しています。Panelただし、グループボックス自体は問題ではありません。これは、Visibleプロパティを変更したレギュラーだけで同じことを行ったため、問題は同じです。

このボックスを非表示にすると、それに応じてウィンドウを縮小したいと思います。したがって、ボックスヘッダーをクリックすると、基本的に次のようなコードが表示されます。

if (OptionsPanel.IsCollapsed)
    this.Height -= (OptionsPanel.Height - OptionsPanel.CollapsedHeight);
else
    this.Height += (OptionsPanel.Height - OptionsPanel.CollapsedHeight);

問題は、ボックスを展開するとウィンドウは実際にそれに応じて拡大しますが、ボックスを折りたたむと縮小しません。実際、私が行うことでウィンドウを小さくすることはできないようです。ウィンドウサイズをハードコーディングしようとしたこともありますが、ウィンドウが小さくなることはなく、大きくなるだけです。

この作品を作るために私が欠けているものはありますか?それとも、これを正しく行うより良いコンポーネントがありますか?正直なところ、この種のことを行うためのデフォルトのコントロールがツールボックスにないことにショックを受けました。これはかなり一般的なことのように思われるためです。このようなことは多くのフォームで見られます。サードパーティのプラグインにアクセスしたり、独自のコードをロールしたりする必要があるようなものではないようです。

4

2 に答える 2

3

AutoSizeフォームがTrueにAutoSizeMode設定されGrowAndShrink、デフォルトに設定されていることを確認してくださいGrowOnly

ここに画像の説明を入力

于 2012-05-20T01:03:12.843 に答える
3

AutoSizeMode=GrowAndShrink プロパティを追加してみましたか?

できれば、AutoSize=true、AutoSizeMode=GrowAndShrink の両方

C# の場合

OptionsPanel.AutoSize = true;
OptionsPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;

参照: http://msdn.microsoft.com/en-us/library/system.windows.forms.autosizemode.aspx

于 2012-05-20T01:05:42.547 に答える