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,如需转载请自行联系原作者

目录
相关文章
|
6月前
layUI数据表格可编辑表格单元格值修改之后获取修改前的值
layUI数据表格可编辑表格单元格值修改之后获取修改前的值
160 0
|
6月前
openpyxl 一行代码批量修改单元格属性、修改全部单元格属性 、设置自动换行、修改全部单元格style为自动换行
openpyxl 一行代码批量修改单元格属性、修改全部单元格属性 、设置自动换行、修改全部单元格style为自动换行
108 0
|
6月前
禁用行、列、单元格单元格编辑
禁用行、列、单元格单元格编辑
C#编程-19:DataGridView属性AutoSizeColumnMode的枚举值(自动列宽)
C#编程-19:DataGridView属性AutoSizeColumnMode的枚举值(自动列宽)
270 0
C#编程-80:DataGridView单元格自动填充
C#编程-80:DataGridView单元格自动填充
172 0
C#编程-80:DataGridView单元格自动填充