C# datagrideview控件問題 (學習日記 2016-12-26)

需求描述:在數據綁定控件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屬性的枚舉值:

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

需求描述:在使用DataGridView控件時候,會出現一個帶星號的空行,要求去掉帶*號的行,未去除*號效果。



解決辦法:設置AllowUserToAddRows屬性值爲false ,去除*號效果。




學習內容:是否允許用戶對DataGridView操作

  1. AllowUserToAddRows屬性:指示是否允許用戶增加一行數據, 值爲turefalse
  1. AllowUserToDeleteRows屬性:指示是否允許用戶刪除一行數據, 值爲turefalse
  1. AllowUserToOrderColumns屬性:指示是否允許用戶手動重新放置列, 值爲turefalse
  1. AllowUserToResizesColumns屬性: 指示用戶是否可以調整列的大小, 值爲turefalse

需求描述:使用DataGridView控件時,去除左側空白方塊(實際是行頭),只要列名。未去除白色方塊效果。



解決方法:設置RowHeaderVisible屬性可以去除左側空白方塊(行標題),去除行頭效果。



學習內容:針對行標題的操作

  1.  RowHeaderBorderStyle :     設置行標題單元格的邊框樣式。
  2.  RowHeaderDefaultCellStyle :設置應用於行標題單元格的默認樣式。
  3.  RowHeaderVisible :               指示是否顯示包含行標題的列。
  4.  RowHeaderWidth:                  設置包含行標題的列的寬度(以像素爲單位)。
  5.  RowHeaderWidthSizeMode :獲取或設置一個值,該值指示是否可以調整行標題的寬度,以及它是由用戶調整還是根據標題的內容自動調整。(常用AutoSizeToFirstHeader枚舉值)。


需求描述;

jiejue



發佈了29 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章