我正在从返回的数据库表创建一个动态DataGridView。我需要根据值将一些单元格更改为红色。我为 CellFormatting 事件分配了一个函数,但每次用户点击任何单元格/行时都会调用该函数(这会降低表单的速度)。
我想只在加载时执行该功能。
我尝试通过循环表来设置样式,但背面颜色没有改变。我只在使用CellFormatting事件时才能使用它。
我的代码:
this.dgv.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.Dgv_CellFormatting);
并在函数中更改颜色
private void Dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.Value != null)
{
if (e.ColumnIndex == 0)
{
if ((int)e.Value >= 5)
{
e.CellStyle.BackColor = Color.Red;
}
}
}
}
答案 0 :(得分:2)
您可以将代码放在“DataBindingComplete”中。
示例强>
private void dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
dgv.Rows[0].Cells[0].Style.BackColor = Color.Red;
}
答案 1 :(得分:0)
使用GridView_RowDataBound事件。
if (e.Row.RowType == DataControlRowType.DataRow)
{
//condition
If(e.Row.cells[3].Text.ToString() == "value2")
{
e.Row.BackColor = Drawing.Color.Red //
}
}