C# 设置cell.ReadOnly无效

C# 设置cell.ReadOnly无效,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我有一个DataGridView,其中我想禁用设置为ReadOnly=true的一些单元格/行 为什么有时这样做没有效果,单元格/行仍然可以编辑 是否有其他可能阻止编辑特定行或单元格?是否可以阻止单击或输入单元格?您可以阻止使用事件进行编辑。如果不希望编辑单元格,可以取消编辑。例如,如果只希望第一列可编辑,可以执行以下操作: private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEven

我有一个
DataGridView
,其中我想禁用设置为
ReadOnly=true
的一些单元格/行

为什么有时这样做没有效果,单元格/行仍然可以编辑


是否有其他可能阻止编辑特定行或单元格?是否可以阻止单击或输入单元格?

您可以阻止使用事件进行编辑。如果不希望编辑单元格,可以取消编辑。例如,如果只希望第一列可编辑,可以执行以下操作:

private void dataGridView1_CellBeginEdit(object sender, 
   DataGridViewCellCancelEventArgs e)
{
   if (e.ColumnIndex != 0) 
   { 
      e.Cancel = true;
   }
}

一种可能性是,如果设置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; 

您也可以作为只读的

尝试在将只读值设置为true后运行
datagridview.Refresh()