我有一个DataGridView
,我希望在设置ReadOnly = true
的情况下禁用某些单元格/行。
有时候这可能没有效果且单元格/行仍然可以编辑的原因是什么?
还有其他可能阻止编辑特定的行或单元格吗?是否可以防止点击或进入单元格?
答案 0 :(得分:17)
您可以阻止使用CellBeginEdit事件进行编辑。如果您不想编辑单元格,可以取消编辑。例如,如果您只希望第一列可编辑,则可以执行以下操作:
private void dataGridView1_CellBeginEdit(object sender,
DataGridViewCellCancelEventArgs e)
{
if (e.ColumnIndex != 0)
{
e.Cancel = true;
}
}
答案 1 :(得分:1)
在将readonly值设置为true后尝试运行datagridview.Refresh()
。
答案 2 :(得分:0)
一种可能性是,如果设置DataGridView的ReadOnly属性(在代码中),则需要重置列'ReadOnly:
this.dgv.Columns[0].ReadOnly = true;
this.dgv.ReadOnly = false;
// Need to reset the column's ReadOnly state:
this.dgv.Columns[0].ReadOnly = true;
您也可以set whole rows作为ReadOnly