无法更改DataGridView的颜色或设置为ReadOnly

时间:2016-04-06 21:07:33

标签: c# datagridview m

我有一个datagridview,我需要禁用行,其中不检查该行上的复选框值,这里是代码:

        foreach (DataGridViewRow row in catView.Rows)
        {
            if (row.Cells[1].FormattedValue.ToString() != "true")
            {
                for (int i = 0; i < row.Cells.Count; i++)
                {
                    row.Cells[i].Style.ForeColor = Color.Gray;
                    row.Cells[i].ReadOnly = true;
                }
            }
        }

问题是,这不会设置颜色或禁用复选框,我出错了什么?

感谢。

更多信息:

cells [1]是复选框列。

3 个答案:

答案 0 :(得分:0)

尝试用以下代码替换for表达式:

for (int i = 0; i < row.Cells.Count; i++)

答案 1 :(得分:0)

您必须标注新的DataGridViewRow并进行设置。 在VB.NET中我会这样做:

 dim MyLine as new DataGridViewRow
 with MyLine
      .Cells[i].DefaultCellStyle.ForeColor = Color.Gray;
      .Cells[i].ReadOnly = true;
 end with

试试吧。

答案 2 :(得分:-1)

如果数据网格的源是数据网格,我找不到直接更新数据网格的方法,手动创建列并手动将行添加到数据网格后,代码工作正常。

我想那些使用数据表来填充数据网格的人需要使用格式更改事件处理程序来更新单元格,该处理程序在绘制数据网格时提交更改。