折りたたみ可能なグループボックスを備えたフォームがあります(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);
問題は、ボックスを展開するとウィンドウは実際にそれに応じて拡大しますが、ボックスを折りたたむと縮小しません。実際、私が行うことでウィンドウを小さくすることはできないようです。ウィンドウサイズをハードコーディングしようとしたこともありますが、ウィンドウが小さくなることはなく、大きくなるだけです。
この作品を作るために私が欠けているものはありますか?それとも、これを正しく行うより良いコンポーネントがありますか?正直なところ、この種のことを行うためのデフォルトのコントロールがツールボックスにないことにショックを受けました。これはかなり一般的なことのように思われるためです。このようなことは多くのフォームで見られます。サードパーティのプラグインにアクセスしたり、独自のコードをロールしたりする必要があるようなものではないようです。