今天有個需求,要把資料顯示在一個DataGridView中,為了美觀,希望列寬可以只適應內容。
本想著如果實在沒辦法,就自己寫代碼實現了,沒想到人家自己就提供了簡便的方法。
就一行代碼:
Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
這就搞定了,效果就是列寬會根據內容以及表頭寬度自行判斷,最後調整到合適的寬度。
2010-05-28 補充
AutoSizeMode這個屬性並不顯示在“屬性”視窗中。
如果你的DataGridView是動態綁定資料的,
那就只能在代碼中設
置。
如果你的DataGridView列名是設計好的,那麼可以在DataGridView上點擊右鍵,選擇“編輯列”,然
後選中你要設定自適應的列,在它的屬性列表中的“布局”選項卡裡面選擇AutoSizeMode的類型。AutoSizeMode屬性可以設定的值還有不少:
| 成員名稱 |
說明 |
| NotSet |
列的大小調整行為從DataGridView.AutoSizeColumnsMode 屬性繼承。 |
| None |
列寬不會自動調整。 |
| AllCells |
調整列寬,以適合該列中的所有儲存格的內容,包括標題儲存格。 |
| AllCellsExceptHeader |
調整列寬,以適合該列中的所有儲存格的內容,不包括標題儲存格。 |
| DisplayedCells |
調整列寬,以適合當前螢幕上顯示的行的列中的所有儲存格的內容,包括標題儲存格。 |
| DisplayedCellsExceptHeader |
調整列寬,以適合當前螢幕上顯示的行的列中的所有儲存格的內容,不包括標題儲存格。 |
| ColumnHeader |
調整列寬,以適合欄位標題儲存格的內容。 |
| Fill |
調整列寬,使所有列的寬度正好填充控制項的顯示地區,只需要水平滾動保證列寬在DataGridViewColumn.MinimumWidth屬性值以上。相對列寬由相對DataGridViewColumn.FillWeight屬性值決定。 |