WinFormコントロールの自動サイズ調整の実装方法
WinFormでは、コントロールのAnchorとDockプロパティを設定することで自動的にサイズ調整できます。
- アンカー属性:
アンカー属性は、コントロールが親コンテナ内でのドッキング方法を決定し、親コンテナのサイズが変更されると、コントロールは自動的に自身のサイズを調整します。アンカー属性の値を設定することで、異なる調整方法を実現できます。よく使用されるアンカー属性値は以下のとおりです。
- 上部の要素が親コンテナ上辺から一定距離を保つ。
- 下:コントロールの下端を親コンテナの下端から固定距離で配置します。
- 左: コントロールの左端は、親コンテナの左端から一定の距離を保ちます。
- 右:コントロールの右辺を親コンテナの右辺に固定オフセット。
複数のアンカー属性値を設定することで、複数の自動調整方向を同時に実現できます。
- Dockプロパティ:
Dockを設定することで、コンテナ内でコントロールを配置する方法を決定でき、コンテナのサイズが変更されたときに、自動的にコントロールのサイズを変更できます。
- 停泊方法を設定しない。
- 上:上部にドッキングし、コントロールは親コンテナーの上端を埋める。
- ボトム(下):コントロールは親コンテナーの下辺に固定されます。
- 左: 左側に寄せ、コンポーネントは親コンテナの左側に配置されます。
- 右寄せ:コントロールが親コンテナの右側に配置されます。
- フィル:填充、コントロールが親コンテナー全体を埋める。
Dockプロパティの値を設定することで、オートサイズを実現できます。
例としてコードを示す
// 设置控件的Anchor属性
button1.Anchor = AnchorStyles.Left | AnchorStyles.Top;
// 设置控件的Dock属性
button2.Dock = DockStyle.Fill;
親コンテナのサイズ変化に連動してボタン1のサイズは変化し、左上位置が固定されます。一方、ボタン2は親コンテナに自動的に埋め込まれ、自身サイズを調整します。