博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataGridView 设定单元格只读:
阅读量:6384 次
发布时间:2019-06-23

本文共 1896 字,大约阅读时间需要 6 分钟。

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,如需转载请自行联系原作者
你可能感兴趣的文章
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
MathType怎么删除常用公式
查看>>
REST API (from IBM)
查看>>
ParagraphString - 段落样式的简易处理
查看>>
前端使用AngularJS的$resource,后端ASP.NET Web API,实现增删改查
查看>>
面向对象设计原则
查看>>
第四十五课 分布式系统、大型网络架构、MogileFS 基础应用
查看>>
yum问题的解决办法
查看>>
转载如何具体优化网站关键词的?(三)
查看>>
IO流(四)_其他流
查看>>
我的友情链接
查看>>
LogStash日志分析展示系统
查看>>
我的友情链接
查看>>
Web前端开发规范文档
查看>>
安装win2008r2、域控、IIS、证书服务器、部署exchange2010
查看>>
centos6.2安装tomcat
查看>>
利用ansible实现一键化部署 rsync服务
查看>>
nginx根据条件跳转+跳转规则
查看>>
(转载)Javascript异步编程的4种方法
查看>>
ACM suvey
查看>>