1.列寬模式

dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;

 

模式

核心行為

適用場景

Fill

所有列按比例分配控件的整個寬度,無需水平滾動即可填滿顯示區域。

需要完全利用控件寬度,避免出現空白區域。

AllCells

每列寬度自動調整以完全適應其所有單元格(包括標題)的內容。

內容完整性最重要,不介意出現水平滾動條。

None

列寬不會自動調整,採用設計時設定的寬度或默認寬度。

需要固定列寬或手動編程控制列寬。

理解 Fill 模式的細節

AutoSizeColumnsMode設置為 Fill後,DataGridView會確保所有可見列的寬度之和正好等於控件當前的顯示寬度,從而完全填充控件的顯示區域,通常可以避免水平滾動。

各列之間的寬度比例主要由每個列的 FillWeight 屬性決定。你可以將其理解為一個列的“權重”或“佔比”。例如,如果A列的 FillWeight是100,B列是200,那麼B列的寬度大致會是A列的兩倍。

此外,系統會尊重每個列所設置的 MinimumWidth 屬性。即使空間再緊張,列的寬度也不會小於其最小寬度值。如果所有列都達到了最小寬度但仍無法填滿空間,則會顯示水平滾動條

權衡與注意事項

使用 Fill模式時,需要注意以下幾點:

  • 用户調整:在該模式下,用户通常仍然可以通過拖動列標題之間的分隔線來手動調整列寬。調整後,所有列會重新按比例分配剩餘空間。
  • 內容顯示:這種模式不保證所有單元格的內容都能完全顯示。如果某列分配到的寬度不足,單元格內容可能會被截斷並以省略號(...)顯示。因此,它更適合用於顯示摘要性或標識性的信息,而非需要完整閲讀的長篇內容。
  • 性能考量:與基於內容自動調整大小的模式(如 AllCells)相比,Fill模式的計算開銷更小,因此在處理大量數據時性能表現更好