WinForms 中的 DataGridView 控件,可以透過 CellFormatting 事件來比對兩個欄位的值,並在發現不同時改變整列的顏色

WinForms 中的 DataGridView 控件,可以透過 CellFormatting 事件來比對兩個欄位的值,並在發現不同時改變整列的顏色

 

假設有兩個欄位 "Column1" 和 "Column2",需要比較這兩個欄位的值,若不同則改變整列的顏色:

 

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    // 確保目前的列是資料列
    if (e.RowIndex >= 0 && dataGridView1.Columns["Column1"] != null && dataGridView1.Columns["Column2"] != null)
    {
        // 取得 Column1 和 Column2 的值
        var value1 = dataGridView1.Rows[e.RowIndex].Cells["Column1"].Value?.ToString();
        var value2 = dataGridView1.Rows[e.RowIndex].Cells["Column2"].Value?.ToString();

        // 比較兩個欄位的值是否不同
        if (value1 != value2)
        {
            // 設定整列的背景顏色為紅色
            dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
        }
        else
        {
            // 若相同則設為預設顏色
            dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White;
        }
    }
}

 

自我LV~