作成日: 2022/03/14 最終更新日: 2022/03/30
文書種別
制限事項
発生環境
AutoScrollを有効にしたフォームでリサイズコンポーネントを使用した場合、フォームを最大化して元に戻すと、フォームの右側と下側に余白ができる
詳細
下記条件でリサイズコンポーネント(GcResize)を使用した場合、フォームを最大化して元に戻すと、フォームの右側と下側に余白ができます。
具体的には以下のプロセスで発生します。
- フォームのAutoScrollを有効にしている
- GcResizeのMinimumFactorを100%以外(例80%)に設定している
- フォームの下側と右側にコントロールを配置している
- 上記のコントロールのAnchorプロパティを「Top,Left」に設定している
具体的には以下のプロセスで発生します。
- フォームを最大化するとフォーム上のコントロールがGcResizeによってリサイズされて大きくなります
- フォームを元に戻すとフォームサイズが元に戻りますが、この時点ではGcResizeによってリサイズされたコントロールは大きいサイズのままです
- コントロールが大きいため、フォームのAutoScroll機能によりスクロールバーが表示されます
- フォームがリサイズされたため、GcResizeによってコントロールがリサイズされて小さくなります
- コントロールが小さくなったためスクロールバーが消えますが、その部分が余白として残ります
回避方法
FormのSizeChangedイベントに以下のコードを追加します。
◎サンプルコード(C#)
◎サンプルコード(C#)
private void Form1_SizeChanged(object sender, EventArgs e)
{
this.ResumeLayout();
this.PerformLayout();
}
{
this.ResumeLayout();
this.PerformLayout();
}