所以现在我已经设置了数据表并将其绑定到datagridview。
我的程序所做的是它将实时日志保存到数据表中。 但是我需要它根据日志级别在每一行中都有一个字体颜色,所以我在数据表的每一行保存它的字体颜色(第6个数据表数组)
是否有将样式绑定到with datatable和datagridview的解决方案?
我也使用过滤器进行搜索,所以我需要能够备份到实现颜色之前曾经拥有的颜色。
目前这正是我在做的事情。最大的问题是,在实现过滤器之后,样式属性全部消失了,它又变成了没有彩色的柱子(再次全黑)
if (value.Contains("<Notice>:"))
{
dataGridView1.Rows[rowNumber].DefaultCellStyle.ForeColor = Color.ForestGreen;
logParserView.Rows[rowNumber][6] = "ForestGreen";
}
else if (value.Contains("<Debug>:"))
{
dataGridView1.Rows[rowNumber].DefaultCellStyle.ForeColor = Color.Orange;
logParserView.Rows[rowNumber][6] = "Orange";
}
else if (value.Contains("<Info>:"))
{
dataGridView1.Rows[rowNumber].DefaultCellStyle.ForeColor = Color.Orange;
logParserView.Rows[rowNumber][6] = "Orange";
}
else if (value.Contains("<Warning>:"))
{
dataGridView1.Rows[rowNumber].DefaultCellStyle.ForeColor = Color.Orange;
logParserView.Rows[rowNumber][6] = "Orange";
}
else if (value.Contains("<Error>:"))
{
dataGridView1.Rows[rowNumber].DefaultCellStyle.ForeColor = Color.DarkRed;
logParserView.Rows[rowNumber][6] = "DarkRed";
}
else if (value.Contains("<Critical>:"))
{
dataGridView1.Rows[rowNumber].DefaultCellStyle.ForeColor = Color.DarkRed;
logParserView.Rows[rowNumber][6] = "DarkRed";
}
else if (value.Contains("<Alert>:"))
{
dataGridView1.Rows[rowNumber].DefaultCellStyle.ForeColor = Color.DarkRed;
logParserView.Rows[rowNumber][6] = "DarkRed";
}
else if (value.Contains("<Emergency>:"))
{
dataGridView1.Rows[rowNumber].DefaultCellStyle.ForeColor = Color.IndianRed;
logParserView.Rows[rowNumber][6] = "IndianRed";
}
谢谢
答案 0 :(得分:0)
如果我理解正确,您只需要处理DataGridView.CellFormatting
事件,并在处理程序中设置CellStyle
处理程序参数的DataGridViewCellFormattingEventArgs
。
干杯
编辑:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.Value == someOtherValue)
e.CellStyle.BackColor = Color.Red;
}