还有其他人看到过此datagridview错误吗?

时间:2019-05-10 19:40:25

标签: visual-studio winforms datagridview

有人可以解释吗?

这有效

        TrandetlDataGridView.ReadOnly = False
        TrandetlDataGridView.CurrentRow.ReadOnly = True

这不是

        TrandetlDataGridView.ReadOnly = True
        TrandetlDataGridView.CurrentRow.ReadOnly = False

1 个答案:

答案 0 :(得分:1)

DataGridView.ReadOnly属性将覆盖任何行/列/单元格只读属性“ IF”,而网格只读属性设置为true。可以在第二个已发布的代码“不起作用”中看到这一点。

根据备注部分DataGridViewRow.ReadOnly属性的MS文档…

  

如果   DataGridView.ReadOnly属性为true。

一种可能的解决方案是将“网格”只读属性保留为false,然后遍历网格行并将每行的只读属性设置为true。然后,它应该会按预期工作。

下面的示例在C#中,但是使用VB可以应用相同的想法。

第一种方法是遍历网格并将每行的只读属性设置为true

private void SetRowsReadOnly() {
  foreach (DataGridViewRow row in TrandetlDataGridView.Rows) {
    row.ReadOnly = true;
  }
}

然后,使用您的“无效”示例,用对上述方法的调用替换将grids设置为只读属性,该方法应该可以正常工作。

private void button2_Click(object sender, EventArgs e) {
  SetRowsReadOnly();
  TrandetlDataGridView.CurrentRow.ReadOnly = false;
}

希望这会有所帮助。