DataGridView 列寬設置

今天有個需求,要把數據顯示在一個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屬性值決定。

 

另外介紹:

DataGridView

有一個屬性是AutoSizeColumnMode,他有幾個枚舉值:
1、AllCells 調整列寬,以適合該列中的所有單元格的內容,包括標題單元格。  
2、AllCellsExceptHeader 調整列寬,以適合該列中的所有單元格的內容,不包括標題單元格。  
3、ColumnHeader 調整列寬,以適合列標題單元格的內容。  
4、DisplayedCells 調整列寬,以適合當前屏幕上顯示的行的列中的所有單元格的內容,包括標題單元格。  
5、DisplayedCellsExceptHeader 調整列寬,以適合當前屏幕上顯示的行的列中的所有單元格的內容,不包括標題單元格。  
6、Fill 調整列寬,使所有列的寬度正好填充控件的顯示區域,只需要水平滾動保證列寬在DataGridViewColumn.MinimumWidth 屬性值以上。相對列寬由相對 DataGridViewColumn.FillWeight 屬性值決定。 
7、None 列寬不會自動調整。  
8、NotSet 列的大小調整行爲從 DataGridView.AutoSizeColumnsMode 屬性繼承。

 

注:如果想要自動設置列寬.在這裏就必須把DataGridView的值設置爲Fill

     this.dataGridView.DataSource = ds.Tables[0];
     this.dataGridView.Columns[0].FillWeight = 10;      //第一列的相對寬度爲10%
     this.dataGridView.Columns[1].FillWeight = 20;      //第二列的相對寬度爲20%
     this.dataGridView.Columns[2].FillWeight = 30;      //第三列的相對寬度爲30%
     這裏的值是相對於DataGridView當前的總寬度的,所以窗體最大化和縮小的效果是不一樣的,但比例不變
注:如何給每列設置標頭
     設置標題字段(先把ColumnsHeadersVisible設置爲true)
     this.dataGridView.Columns[0].HeaderText = "編號";
     this.dataGridView.Columns[1].HeaderText = "日期";
     this.dataGridView.Columns[2].HeaderText = "標題";

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章