繁体   English   中英

Datagridview单元格样式问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM