设置cell.ReadOnly无效

时间:2011-03-15 14:45:22

标签: c# .net winforms datagridview

我有一个DataGridView,我希望在设置ReadOnly = true的情况下禁用某些单元格/行。

有时候这可能没有效果且单元格/行仍然可以编辑的原因是什么?

还有其他可能阻止编辑特定的行或单元格吗?是否可以防止点击或进入单元格?

3 个答案:

答案 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