C#数据网格特定单元格可编辑

C#数据网格特定单元格可编辑,c#,datagridview,cell,editing,C#,Datagridview,Cell,Editing,我想启用特定单元格进行编辑 我的datagridview为只读false 然后单击单元格,获取我的columnindex并尝试执行以下操作: if (e.ColumnIndex == 7) { if (String.IsNullOrEmpty(Convert.ToString(dgv.Rows[e.RowIndex].Cells["id"].Value))) {

我想启用特定单元格进行编辑

我的datagridview为只读false

然后单击单元格,获取我的columnindex并尝试执行以下操作:

     if (e.ColumnIndex == 7)
                {
                if (String.IsNullOrEmpty(Convert.ToString(dgv.Rows[e.RowIndex].Cells["id"].Value)))
                    {
                        dgv.Columns[e.ColumnIndex].ReadOnly = true;
                    }
                    else
                    {
                        dgv.Columns[e.ColumnIndex].ReadOnly = false;
                        dgv.BeginEdit(true);
                        dgv.Rows[rowindex].Cells[columnindex].Selected = true;
                    }


                }
如果不成功,我的手机将无法使用。 有人能帮忙吗。
谢谢

我用以下代码解决了我的问题:

private void dgvLocataire_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
       {
           dgvLocataire.BeginEdit(false);

           var ec = dgvLocataire.EditingControl as DataGridViewComboBoxEditingControl;
           if (ec != null && ec.Width - e.X < SystemInformation.VerticalScrollBarWidth)
               ec.DroppedDown = true;

           if ((e.ColumnIndex != 5) && (e.ColumnIndex != 6) && (e.ColumnIndex != 7))
           {
               dgvLocataire.Columns[e.ColumnIndex].ReadOnly = true;
           }

       }
private void dgvLocataire_CellMouseClick(对象发送方,DataGridViewCellMouseEventArgs e)
{
dgvLocataire.BeginEdit(假);
var ec=dgvlocateire.EditingControl作为DataGridViewComboBoxEditingControl;
if(ec!=null&&ec.Width-e.X

感谢您的帮助

代码是否可能将整个网格设置为只读?如果整个网格设置为只读…则“网格”只读属性将“覆盖”特定于行、列或单元格的任何只读命令。如果是这种情况,则需要将“grids”只读属性设置为
false
,然后才能编辑任何行、列或单元格。为了避免这种情况,可以循环遍历各个行、列或单元格,并将它们单独设置为只读,这样代码就可以工作了。