[英]Datagridview Cell Style issue
我在C#桌面应用程序中有一个Datagridview
。 当任何一个单元格为空时,为了突出显示它,我将该特定单元格的背景更改为Color.Green
if (checkString(Convert.ToString(this.UserDataTable.Rows[i].Cells[kk].Value).Trim()) == false)
{
this.UserDataTable.Rows[i].Cells[kk].Style.BackColor = Color.Green;
this.MandatoryField_Label.ForeColor = Color.Green;
success = false;
}
当用户在单元格中输入数据时,我将还原所做的更改。 任何想法如何做到这一点。
我正在考虑的解决方案之一是检查每种单元格的颜色,然后进行更改。 我敢肯定,有更好的方法可以做到这一点。
这不起作用:
this.UserDataTable.DefaultCellStyle.BackColor = Color.White;
谢谢
您可以在CellLeave事件中检查单元格的内容
if(!string.IsNullOrEmpty(((DataGridViewCell)sender).Value))
((DataGridViewCell)sender).Style.BackColor = Color.White;
解决此问题的最干净的方法可能是使用像这样的CellFormatting事件(这是您唯一需要的代码,您可以删除其他代码):
dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);
void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.Value == null || String.IsNullOrWhiteSpace(e.Value.ToString()))
{
e.CellStyle.BackColor = Color.Green;
}
else
{
e.CellStyle.BackColor = Color.White;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.