DataGridView 设定单元格只读:

简介:
1   使用  ReadOnly  属性
 如果希望, DataGridView  内所有单元格都不可编辑,   那么只要:
[VB.NET]
设置  DataGridView1  为只读
DataGridView1.ReadOnly =  True
 
[C#]
//  设置  DataGridView1  为只读
DataGridView1.ReadOnly =  true ;
此时,用户的新增行操作和删除行操作也被屏蔽了。

 如果希望, DataGridView  内某个单元格不可编辑,   那么只要:
[VB.NET]
设置  DataGridView1  的第 2 列整列单元格为只读
DataGridView1.Columns(1).ReadOnly =  True

设置  DataGridView1  的第 3 行整行单元格为只读
DataGridView1.Rows(2).ReadOnly =  True

设置  DataGridView1  [0 0] 单元格为只读
DataGridView1(0, 0).ReadOnly =  True
 
[C#]
//  设置  DataGridView1  的第 2 列整列单元格为只读
DataGridView1.Columns[1].ReadOnly =  true ;

//  设置  DataGridView1  的第 3 行整行单元格为只读
DataGridView1.Rows[2].ReadOnly =  true ;

//  设置  DataGridView1  [0 0] 单元格为只读
DataGridView1[0, 0].ReadOnly =  true ;

2
  使用  EditMode  属性
DataGridView.EditMode 
属性被设置为  DataGridViewEditMode.EditProgrammatically  时,用户就不能手动编辑单元格的内容了。但是可以通过程序,调用  DataGridView.BeginEdit  方法,使单元格进入编辑模式进行编辑。
[VB.NET]
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
 
[C#]
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;

3
  根据条件设定单元格的不可编辑状态
当一个一个的通过单元格坐标设定单元格  ReadOnly  属性的方法太麻烦的时候,你可以通过  CellBeginEdit  事件来取消单元格的编辑。
[VB.NET]
'CellBeginEdit  事件处理方法
Private   Sub  DataGridView1_CellBeginEdit( ByVal  sender  As   Object , _
        
ByVal  e  As  DataGridViewCellCancelEventArgs) _
        
Handles  DataGridView1.CellBeginEdit
    
Dim  dgv  As  DataGridView =  CType (sender, DataGridView)
    
是否可以进行编辑的条件检查
     If  dgv.Columns(e.ColumnIndex).Name = "Column1"  AndAlso  _
        
Not   CBool (dgv("Column2", e.RowIndex).Value)  Then
        
取消编辑
        e.Cancel =  True
    
End   If
End Sub
 
[C#]
// CellBeginEdit  事件处理方法
private   void  DataGridView1_CellBeginEdit( object  sender,
    DataGridViewCellCancelEventArgs e)
{
    DataGridView dgv = (DataGridView)sender;
    
// 是否可以进行编辑的条件检查
     if  (dgv.Columns[e.ColumnIndex].Name == "Column1" &&
        !(
bool )dgv["Column2", e.RowIndex].Value)
    {
        
//  取消编辑
        e.Cancel =  true ;
    }
}




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/201776,如需转载请自行联系原作者

目录
相关文章
|
7月前
Datagridview 显示当前选中行
Datagridview 显示当前选中行
67 0
禁用行、列、单元格单元格编辑
禁用行、列、单元格单元格编辑
|
人工智能 C#
c#中在datagridview的表格动态增加一个按钮方法
c#中在datagridview的表格动态增加一个按钮方法,如果想要这一套教程的可以移步去这里 《期末作业C#实现学生宿舍管理系统》,对了最近我们有一个人工智能交流群,如果大家对代码有问题,想交流的可以进群,私聊我就可以了! 效果图片 : 在Load事件中写入代码 那ui有了功能怎么办呢?别急我们在 dataGridView1_CellContentClick事件中添加方法 这样的话 我们就可以点击对应行的修改来获取到id的值这里有一个bug就是第三行没数据需要隐藏,现在还没有解决,欢迎大家指出!.....
677 0
c#中在datagridview的表格动态增加一个按钮方法
C#编程-19:DataGridView属性AutoSizeColumnMode的枚举值(自动列宽)
C#编程-19:DataGridView属性AutoSizeColumnMode的枚举值(自动列宽)
349 0
C#编程-23:删除datagridview中选中的多行
C#编程-23:删除datagridview中选中的多行
270 0
jqgrid 不能选中行, 每次点击单元格都自动选中第一行
最使用jqgrid表格插件写了一个功能。功能完成后显示一切正常,但是经过测试后发现,每次点击数据行时,都会自动选中第一行,无法选中其他数据行。经过一番探索,最终发现是加载进来的字段没有主键导致了这个问题。
4294 0