有人可以解释吗?
这有效
TrandetlDataGridView.ReadOnly = False
TrandetlDataGridView.CurrentRow.ReadOnly = True
这不是
TrandetlDataGridView.ReadOnly = True
TrandetlDataGridView.CurrentRow.ReadOnly = False
答案 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;
}
希望这会有所帮助。