突出显示DataGridView中特定单元格的颜色

时间:2009-11-24 10:40:25

标签: c# .net

在Windows应用程序中,我正在使用datagridview。是否可以突出某些细胞的颜色......也就是说,应突出显示某些细胞。我怎么能做到这一点?

4 个答案:

答案 0 :(得分:2)

foreach (DataGridViewRow row in dataGridView.Rows)
{
    if (row.Cells[0].Value.ToString() == "someVal")
    {
        row.DefaultCellStyle.BackColor = Color.Tomato;
    }
}

答案 1 :(得分:1)

在网格的CellFormatting事件中,您可以检查要显示的值,并相应地更改CellStyle

您可以使用事件参数的RowIndexColumnIndex属性来检查要显示的单元格。您可以在需要更改时设置CellStyle属性(例如e.CellStyle.ForeColor = Color.Red;)。

答案 2 :(得分:0)

设置defaultcellstyle将为整行着色。设置单行的默认值听起来不错。对于那些不在“someVal”的defaultcellstyle集合下的行,你需要一个else语句,不要让它们像其他行一样着色,因为它们不采取任何行动。另外,对实际类型的值进行类型转换应该比ToString()提供更好的性能。我可以想象,这可能会在每个更新的整个列表中循环。

相反,只需对单个单元格着色,就这样做:

foreach (DataGridViewRow row in dataGridView.Rows)
{
    if ((string)row.Cells[0].Value == "someVal")
    {
        row.Cells[0].Style.BackColor= Color.Tomato;
    }
}

答案 3 :(得分:0)

如果您只想更改当前选定的单元格。

private void grid1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {

        grid1.CurrentCell.Style.SelectionBackColor = Color.Red;


    }