2009-08-31 110 views
6

我有一個DataGridView,它通過將它的DataSource設置爲DataBinding來填充。C#/ .NET如何突出顯示DataGridView中的某些行

現在我想根據行本身的某些值在DataGridView中擁有不同Backgroundcolor中的某些行。

我該怎麼做到這一點?

+0

我認爲你可以找到這個問題的一些有用的信息的顏色或款式。 http://stackoverflow.com/questions/1078782/c-iterate-over-datagridview-change-row-color – rahul

回答

7

有一個很好的例子here.

的概念是您訂閱從電網事件。當一個單元格被填充時,會觸發一個事件並根據該值設置單元格的格式等。

1

在datagridview的CellFormatting事件處理函數中,可以爲所需的任何行設置默認背景色。

private void MyDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
    { 

     if (e.RowIndex == rowIndexToHighlight) 
     { 
      e.CellStyle.BackColor = Color.Green; 
     } 

    } 
+1

-1,因爲這個例子具有非常差的性能影響。如果使用數據綁定,則數據網格將需要維護重複的行記錄。 Psasik的例子避免了不共享行。 – Kleinux

+0

@Kleinux:這是關於維護重複行記錄的有趣評論。你能解釋爲什麼這樣嗎?謝謝 – Andy

+1

如果你看看文檔,你會發現共享與非共享的行。上面的代碼強制網格視圖爲數據源中的每一行生成實際的DataGridViewRow記錄。這些行在單元值的意義上不是重複的,它仍然可以讀取數據源,但由於現在需要的樣式信息,它們不必存在。希望我已經使我的評論更清楚一點。這是一個很好的教程http://msdn.microsoft.com/en-us/library/ha5xt0d9.aspx – Kleinux

1

可以使用RowPrePaint改變整個行

相關問題