for ( int i = 0; i < dataGridView2.Rows.Count; i++) //行號 { int j = i + 1; dataGridView2.Rows[i].HeaderCell.Value = j.ToString(); }
通過上面的處理就可以簡單的將行號添加了。簡單的看來就是循環的給每一行添加,思路比較簡潔。
第二種: 這種方式是使用DataGridview自帶的事件進行處理,這個事件就是RowPostPaint,我們可以在該事件中添加相應的處理方法就可以添加行號了,相應的代碼為:1 private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) 2 { 3 System.Drawing. Rectangle rectangle = new System.Drawing.Rectangle
(e.RowBounds.Location.X, 4 e.RowBounds.Location.Y, 5 dataGridView1.RowHeadersWidth - 4, 6 e.RowBounds.Height); 7 8 TextRenderer.DrawText(e.Graphics,
(e.RowIndex + 1).ToString(), 9 dataGridView1.RowHeadersDefaultCellStyle.Font, 10 rectangle, 11 dataGridView1.RowHeadersDefaultCellStyle.ForeColor, 12 TextFormatFlags.VerticalCenter | TextFormatFlags .Right); 13 }
這種方式也可以正常顯示。
上面兩種方式本人均通過實踐檢驗,均能正常顯示,其他的方式本人暫時沒有進行研究。
2、高亮顯示某一行
在我們的實際項目中可能會有這樣的要求,當某條數據滿足某個條件的時候將這條數據的整行或者當前的單元格高亮顯示出來,因為原理都是一樣的,這裡就記錄一下其中的一種情況。具體的實現是非常簡單的,如果看了上面添加行號的話,這裡就可以很好的理解了,原理都是一樣的,這是處理的屬性不同而已,具體為:1 for ( int i = 0; i < dataGridView2.Rows.Count; i++) //行號 2 { 3 if (dataGridView2.Rows[i].Cells["FLAG" ].Value.ToString() == "2") { 4 this.dataGridView2.Rows[i].DefaultCellStyle.BackColor= Color.Red; 5 } 6 }
其實就是跟上面第一種的地方是一樣的,處理的屬性不一樣就是了。
3、添加復選框 有時候我們會被要求到,我們可以選擇數據集的一行或者多行,雖然我們可以通過ctrl鍵進行實現,但是在實際的工作當中,我們更加喜歡復選框這樣一種形式。而這個形式的實現只要我們添加一列用於選擇就可以了,我們在添加這一列的時候,選擇ColumnType為DataGridViewCheckBoxColumn即可,我們也可以根據需要選擇多種形式。 4、犯的一些錯誤 1、表頭與數據庫中不對應,顯示的數據沒有按規則顯示 我們在編輯字段的時候我們一般會編輯兩個屬性,一個是HeaderText,一個是DataPropertyName,前一個是用於顯示在界面上的,後一個是與設置的數據集中的字段是一致的。如果後面一個沒有進行設置就會出現不按預想的形式顯示的問題。順便有一個小的技巧,當我們不想顯示某一列的時候,我們可以設置屬性Visible為False即可。 2、通過屬性字段來獲取單元格的數據出錯 假如我們要進行這樣的形式(dataGridView2.Rows[i].Cells["FLAG" ].Value.ToString())進行獲取單元格的數據,我們單單設置DataPropertyName屬性是不夠的,我們還要設置Name屬性為FLAG(根據具體的字段進行相應的設置)。 5、說明 在以後的使用當中,如果還有一些可以分享的東西,我也會繼續添加的。