発生するWinFormsの自動サイズ変更を強制
-
21-09-2019 - |
質問
私は、Windowsフォームでの次のような構造を持っています:
Form (AutoResize = true, AutoSizeMode = GrowAndShrink)
FlowLayout (AutoResize = true, AutoSizeMode = GrowAndShrink)
GroupBox
GroupBox
GroupBox
StatusStrip
私の期待は、グループボックスの可視性を変更するとウィンドウが空のスペースを再利用するために新しいサイズにスナップさせ、または新しいコントロールを受け入れるべきであるということです。しかし、これは自動的には行われません。私は、トレイに最小化し、フォーム(すなわちトグル見える、ShowInTaskbar、のWindowState =ノーマル/最小化)を復元した場合、それが再び表示されたときに、そして、それは正しく更新されています。それはページの下部にStatusStripの内容に更新され、トリガーというもう一つは、(プログレスバーなどを変更し、ラベルを示します)。私は、さらにonResizeなど/無効化/更新の様々なブードゥー教にインスピレーションを得た組み合わせを試してみたが、私はもう少し基本と希望誰かが私が説明してるものの中に明らかな欠陥を見ることができる何かが欠けていると感じます。
それが関連性の場合、フォーム上のウィジェットにすべての私の更新は、InvokeRequired /起動の内側にある。
解決
私はあなたのレイアウトとプロパティの設定を使用して簡単なテストフォームでこの問題をREPROすることはできません。フォームのクライアント領域は、起動時に縮小し、必要に応じて私がtrueにVisibleプロパティを設定すると、グループボックスが表示されるように成長されます。
あなたはPerformLayout()メソッドで明示的なレイアウトの再計算を依頼することができます。
所属していません StackOverflow