在Windows应用程序中,我正在使用datagridview。是否可以突出某些细胞的颜色......也就是说,应突出显示某些细胞。我怎么能做到这一点?
答案 0 :(得分:2)
foreach (DataGridViewRow row in dataGridView.Rows)
{
if (row.Cells[0].Value.ToString() == "someVal")
{
row.DefaultCellStyle.BackColor = Color.Tomato;
}
}
答案 1 :(得分:1)
在网格的CellFormatting
事件中,您可以检查要显示的值,并相应地更改CellStyle
。
您可以使用事件参数的RowIndex
和ColumnIndex
属性来检查要显示的单元格。您可以在需要更改时设置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;
}