如何将DataGridView的单独某个单元格设置为可编辑状态

时间:2022-04-15 19:40:12
将DataGridView的ReadOnly属性设置为false的话全部的单元格都可以编辑了,但我不想这么做。网上有很多人说可以将单个单元格的ReadOnly属性设置为false,例如在某个按键的点击事件下设置
dataGridView1.Rows[0].Cells[0].ReadOnly = false;

但是在DataGridView全局设为ReadOnly后,这样做没用啊,一点反应都没有,有没有什么方法

8 个解决方案

#1


A、用CellValidating取消所有指定单元格以外的修改
B、将指定单元格以外的的单元格(或者行、列)的ReadOnly设置为true

#2


引用 1 楼 shingoscar 的回复:
A、用CellValidating取消所有指定单元格以外的修改
B、将指定单元格以外的的单元格(或者行、列)的ReadOnly设置为true

第二种方法是不能用的,因为我想做到选中某个单元格后再点击某个按键然后就可以编辑,用第二种的话太麻烦了。
第一种是什么可否解释一下

#3


全局控制局部,全局只读,局部可编辑,1楼的第二个方法可行,也不算麻烦。貌似没有更好的方法了。

#4


引用 3 楼 xuggzu 的回复:
全局控制局部,全局只读,局部可编辑,1楼的第二个方法可行,也不算麻烦。貌似没有更好的方法了。

嗯,我之前有试过,先将全局设置为ReadOnly=True,然后通过某个按键事件将某个单元格设为Readonly=false,但是发现无效,那个单元格还是不能编辑。我说麻烦是理解错1楼的意思了,我以为他说将全局设为readonly=false,然后再将除选定单元格外全部设为true

#5


自己去看下CellValidating事件

#6


楼主说太麻烦也不知道哪里麻烦………

#7


引用 6 楼 shingoscar 的回复:
楼主说太麻烦也不知道哪里麻烦………

说太麻烦是我理解错了,而且当DataGridView的ReadOnly=true时,单独设置某个单元格的ReadOnly=false也是不能编辑(刚刚试验过了),所以要想把其他单元格的ReadOnly设置为false不就得一个一个来设置了吗

#8


不就2层循环么,又不是要你一个一行

#1


A、用CellValidating取消所有指定单元格以外的修改
B、将指定单元格以外的的单元格(或者行、列)的ReadOnly设置为true

#2


引用 1 楼 shingoscar 的回复:
A、用CellValidating取消所有指定单元格以外的修改
B、将指定单元格以外的的单元格(或者行、列)的ReadOnly设置为true

第二种方法是不能用的,因为我想做到选中某个单元格后再点击某个按键然后就可以编辑,用第二种的话太麻烦了。
第一种是什么可否解释一下

#3


全局控制局部,全局只读,局部可编辑,1楼的第二个方法可行,也不算麻烦。貌似没有更好的方法了。

#4


引用 3 楼 xuggzu 的回复:
全局控制局部,全局只读,局部可编辑,1楼的第二个方法可行,也不算麻烦。貌似没有更好的方法了。

嗯,我之前有试过,先将全局设置为ReadOnly=True,然后通过某个按键事件将某个单元格设为Readonly=false,但是发现无效,那个单元格还是不能编辑。我说麻烦是理解错1楼的意思了,我以为他说将全局设为readonly=false,然后再将除选定单元格外全部设为true

#5


自己去看下CellValidating事件

#6


楼主说太麻烦也不知道哪里麻烦………

#7


引用 6 楼 shingoscar 的回复:
楼主说太麻烦也不知道哪里麻烦………

说太麻烦是我理解错了,而且当DataGridView的ReadOnly=true时,单独设置某个单元格的ReadOnly=false也是不能编辑(刚刚试验过了),所以要想把其他单元格的ReadOnly设置为false不就得一个一个来设置了吗

#8


不就2层循环么,又不是要你一个一行