c#更改DataGridView的行背景色
本文关键字:背景色 DataGridView 更改 | 更新日期: 2023-09-27 18:12:00
我有一个来自数据库的表,它保存了一些关于用户的信息,当用户Cell[5]
的值是"Connected"
时,我想改变该行的背景色:
public void Initialize(DataGridView Dt)
{
foreach(DataGridViewRow Row in Dt.Rows)
{
if (Row.Cells[5].Value.ToString() == "Connected")
{
Row.DefaultCellStyle.BackColor = Color.Green;
}
else
{
Row.DefaultCellStyle.BackColor = Color.Red;
}
}
}
一切工作完美,没有异常抛出,但我的行颜色没有改变在两种情况下
请注意,我使用MetroGridView
从Metro Dll
您必须处理单元格格式化事件以实现您的目标。尝试下面的示例代码。
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if(dataGridView1.Columns[e.ColumnIndex].Name == "C")
{
if(e.Value != null)
{
String StringValue =(String)e.Value;
if (StringValue.IndexOf("C1") > -1)
{
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
}
}
}
}
我猜,即使你做的是正确的,单元格格式化事件触发在后面的部分,是覆盖您的更改。