需求描述:在數據綁定控件DataGridView中設置不同的行的顏色,要求錯誤行有醒目的紅色,正確行是白色,選中行是綠色。
解決辦法:經過查詢MSDN得知在數據綁定控件DataGridView中有屬性DefaultCellStyle屬性,這個屬性是用於獲取和設置應用於數據綁定控件的默認單元格樣式。設置的代碼如下所示:
//失敗列表添加一行數據 --
private void dtErrAdd(string code)
{
if (dtErrorList.Select("失敗面牌='" + code + "'").Length <= 0)
{
dtErrorList.Rows.Add(code);
dataGridView2.DataSource = dtErrorList;
dataGridView2.DefaultCellStyle.BackColor = Color.Red; //設置失敗面牌的行默認顏色 --主要問題代碼
dataGridView2.DefaultCellStyle.SelectionBackColor = Color.Red; //設置失敗面牌的選中行的顏色 --主要問題代碼
}
}
學習:枚舉值除了有BackColor(背景色),SelectionBackColor(選中行背景色),還有SelectionForeColor(選中行前景色,一般是字體顏色)
另外一些常見的數據綁定控件的格式顏色,RowHeaderDefaultCellStyle(行頭默認單元顏色),AlternatingRowsDefaultCellStyle(更該行的默認單元顏色),ColumHeaderDefaultCellStyle(設置列頭的單元格顏色) , DefaultCellStyle(默認單元格顏色)
需求描述:要求清空DataGridView對象的數據後重新綁定進來(表結構不變,表內容爲空)。
若使用dataGridView1.Rows.Clear()的方法,會刪除表結構。(該方法不行)
設置Datagridview對象的Datasource屬性爲null ,也會把標題列也刪除。(該方法不行)
解決辦法:
DataTable dt = (DataTable)dataGridView1.DataSource; //將之前的DataGridview對象綁定的數據顯示轉換爲DataTable
dt.Rows.Clear(); //清空所有的行,保持表結構
dataGridView1.DataSource = dt; //重新綁定到DataGridview對象中。
思路: 想要對DataGridview控件清空數據還要保持表結構,只能重新綁定清空後的DataTable對象,具體做法使用是將DataGridView對象綁定的數據顯示轉換成DataTable對象, 對DataTable對象清空數據,從新綁定DataGridView對象。
需求描述:使用DataGridView控件時,要求將添加的列填充所有區域,未填充前的效果。
解決辦法:使用AutoSizeColumnModel屬性可以設置列寬度,填充後的效果。
學習內容:AutoSizeColumnModel屬性的枚舉值:
- AllCells 調整列寬,以適合該列中的所有單元格的內容,包括標題單元格。
- AllCellsExceptHeader 調整列寬,以適合該列中的所有單元格的內容,不包括標題單元格。
- ColumnHeader 調整列寬,以適合列標題單元格的內容。
- DisplayedCells 調整列寬,以適合當前屏幕上顯示的行的列中的所有單元格的內容,包括標題單元格。
- DisplayedCellsExceptHeader 調整列寬,以適合當前屏幕上顯示的行的列中的所有單元格的內容,不包括標題單元格。
- Fill 調整列寬,使所有列的寬度正好填充控件的顯示區域,只需要水平滾動保證列寬在DataGridViewColumn.MinimumWidth 屬性值以上。相對列寬由相對 DataGridViewColumn.FillWeight 屬性值決定。
- None 列寬不會自動調整。
- NotSet 列的大小調整行爲從 DataGridView.AutoSizeColumnsMode 屬性繼承。
需求描述:在使用DataGridView控件時候,會出現一個帶星號的空行,要求去掉帶*號的行,未去除*號效果。
解決辦法:設置AllowUserToAddRows屬性值爲false ,去除*號效果。
學習內容:是否允許用戶對DataGridView操作
- AllowUserToAddRows屬性:指示是否允許用戶增加一行數據, 值爲ture和false。
- AllowUserToDeleteRows屬性:指示是否允許用戶刪除一行數據, 值爲ture和false。
- AllowUserToOrderColumns屬性:指示是否允許用戶手動重新放置列, 值爲ture和false。
- AllowUserToResizesColumns屬性: 指示用戶是否可以調整列的大小, 值爲ture和false。
需求描述:使用DataGridView控件時,去除左側空白方塊(實際是行頭),只要列名。未去除白色方塊效果。
解決方法:設置RowHeaderVisible屬性可以去除左側空白方塊(行標題),去除行頭效果。
學習內容:針對行標題的操作
- RowHeaderBorderStyle : 設置行標題單元格的邊框樣式。
- RowHeaderDefaultCellStyle :設置應用於行標題單元格的默認樣式。
- RowHeaderVisible : 指示是否顯示包含行標題的列。
- RowHeaderWidth: 設置包含行標題的列的寬度(以像素爲單位)。
- RowHeaderWidthSizeMode :獲取或設置一個值,該值指示是否可以調整行標題的寬度,以及它是由用戶調整還是根據標題的內容自動調整。(常用AutoSizeToFirstHeader枚舉值)。
需求描述;
jiejue