根据可编辑属性设置DataGridview列的Backcolor

时间:2016-07-28 05:16:42

标签: c# .net datagridview

我通过直接分配数据表从数据库中填充Datagridview。在Datagridview中有一些可编辑的列和一些不可编辑的列。我想将可编辑列的颜色设置为'黄色&# 39 ;.

我知道我可以设置列的颜色,如

myGrid.Columns["myColumn"].DefaultCellStyle.BackColor = Color.Red;

但是如何检查可编辑的角色并根据它设置颜色?

更新: 这就是我正在寻找的......黄色单元格应该是可编辑的。基本上,所谓的WholeSaleRate,零售价格等单元格应该是可编辑的。

enter image description here

3 个答案:

答案 0 :(得分:1)

我可以理解您的问题,您想要更改cells的可编辑datagridview的颜色吗?

您可以使用DataGridViewCellFormattingEvent的{​​{1}}事件来完成此操作,并检查列是datagridview,然后更改readonly的背景。

datagridviewcell

输出:

enter image description here

答案 1 :(得分:0)

使用RowPostPaint event

for loop

您还可以覆盖paint方法,如上所述here

答案 2 :(得分:0)

这只是使列可编辑的示例代码,dgvSample是您在表单中添加的DataGridView。在这里,我使所有奇数列都可编辑。因此,同样地,您可以使用带有复选框的隐藏列,并检查其是否可编辑并实现相同。

dgvSample.AllowUserToAddRows = false;
dgvSample.AllowUserToDeleteRows = false;

for (int i = 0; i <= 10; i++)
{
    string[] values = new string[] { "1", "Name" };
    dgvSample.Rows.Add(values);
    if (i % 2 == 0)
    {
        DataGridViewRow r = dgvSample.Rows[dgvSample.Rows.Count - 1];
        r.ReadOnly = true;
    }
    else
    {
        r.DefaultCellStyle.BackColor = Color.Yellow;
    }
}