WinForms 視窗最大化時,控件不跟隨移動/縮放,導致介面留白、重疊。核心解決三大機制:Anchor、Dock、TableLayoutPanel,按複雜度遞增選用。
Anchor → 勾選 Top, Left, Right, Bottom 四邊 → 控件四邊與父容器四邊保持固定距離,隨父容器縮放。Dock = Top:工具列永遠頂部滿寬Dock = Bottom:狀態列永遠底部滿寬Dock = Fill:中間主區域(DataGridView/TabControl)佔滿剩餘空間Dock 優先級高於 Anchor,同容器內混用需謹慎規劃 Z-order。TableLayoutPanel,Dock = FillAnchor = 四邊 或 Dock = FillColumnSpan/RowSpan| 現象 | 原因 | 修正 |
|---|---|---|
| 控件疊在一起 | 同一容器多個 Dock=Fill | 改用 TableLayoutPanel 或調整 Z-order |
| 縮小時控件被切掉 | 未設 MinimumSize 或 AutoScroll | 父容器 AutoScroll=true,控件設 MinimumSize |
| 字體過大溢出 | 固定 Height 衝突 | 改用 AutoSize=true 或 TableLayoutPanel 百分比列 |
新手建議:優先用 Anchor 四邊錨定,滿足 80% 場景;工具列/狀態列用 Dock;複雜表單、報表介面直接上 TableLayoutPanel,一勞永逸。