在很多C/S程序中,一般都需要把數據以DataGridView顯示出來,有時可以直接把得到的實體集合綁定到DataGridView上面,但更多的時候,我們是把DataTable綁定到這個控件上面,在綁定之前,我們需要對DataGrdiView進行初始化。一般可以用如下的代碼進行初始化:
DataGridViewImageColumn colImg = new DataGridViewImageColumn();
colImg.Name = "colImg";
colImg.HeaderText = "";
colImg.Image = Properties.Resources.producttype;
colImg.Width = 20;
dgv.Columns.Add(colImg);
dgv.Columns.Add("PRODUCTTYPE", "類型");
dgv.Columns["PRODUCTTYPE"].DataPropertyName = "PRODUCTTYPE";
dgv.Columns["PRODUCTTYPE"].Width = 160;
dgv.Columns.Add("ALIAS", "別名");
dgv.Columns["ALIAS"].DataPropertyName = "ALIAS";
dgv.Columns["ALIAS"].Width = 200;
dgv.Columns.Add("CLASSIFICATION", "類別");
dgv.Columns["CLASSIFICATION"].DataPropertyName = "CLASSIFICATION";
dgv.Columns["CLASSIFICATION"].Width = 200;
dgv.Columns["CLASSIFICATION"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
一般第一列都是顯示一個圖片,后面的列就要和你的DataTable中的字段對應。需要注意的是,在創建新列的時候,括號里面的英文名稱一定是你DataTable中的列名,中文名稱是你想在界面上顯示的名稱。最后有一句話dgv.Columns["CLASSIFICATION"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;,這個意思是設置最后一列為自動填充模式。因為每一列我們都設置了寬度,當窗體最大化后,所以的列寬加起來沒有窗體寬,那么DataGridView后面就會空出一片出來,把最后一列設置成了自動填充模式后,當窗體最大化時,最后一列的寬度會自動增加,填充其他的空白區域。
另外,還有一種初始化的方法,也可以使用,代碼如下:
DataGridViewTextBoxColumn colProductType = new DataGridViewTextBoxColumn();
colProductType.DataPropertyName = strPRODUCTTYPE;
colProductType.Name = strPRODUCTTYPE;
colProductType.HeaderText = "類型";
colProductType.Width = 160;
DataGridViewTextBoxColumn colAlias = new DataGridViewTextBoxColumn();
colAlias.DataPropertyName = strALIAS;
colAlias.Name = strALIAS;
colAlias.HeaderText = "別名";
colAlias.Width = 200;
DataGridViewTextBoxColumn colClassification = new DataGridViewTextBoxColumn();
colClassification.DataPropertyName = strCLASSIFICATION;
colClassification.Name = strCLASSIFICATION;
colClassification.HeaderText = "類別";
colClassification.Width = 200;
dgv.Columns.AddRange(new DataGridViewColumn[] {
colImg,
colProductType,
colAlias
});
當然在這種方法中,strPRODUCTTYPE,strALIAS,strCLASSIFICATION三個變量分別需要提前定義好,它們的值也就是需要綁定的DataTable的列的值。