-1

我有一个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;
                }
            }
        }

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

谢谢。

更多信息:

单元格[1] 是复选框列。

4

3 回答 3

0

尝试用for这个替换你的表达式:

for (int i = 0; i < row.Cells.Count; i++)
于 2016-04-06T21:11:46.863 回答
0

您必须标注一个新的 DataGridViewRow 并设置它。在 VB.NET 中,我会这样做:

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

试试看。

于 2016-04-06T22:29:36.720 回答
-1

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

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

于 2016-04-07T08:20:08.270 回答