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

目录
相关文章
|
9月前
|
人工智能 自然语言处理 算法
AI时代的企业内训全景图:从案例到实战
作为一名扎根在HR培训领域多年的“老兵”,我越来越清晰地感受到,企业内训的本质其实是为企业持续“造血”。无论是基础岗的新人培训、技能岗的操作规范培训,还是面向技术中坚力量的高阶技术研讨,抑或是管理层的战略思维提升课,内训的价值都是在帮助企业内部提升能力水平,进而提高组织生产力,减少对外部资源的依赖。更为重要的是,在当前AI、大模型、Embodied Intelligence等新兴技术快速迭代的背景下,企业必须不断为人才升级赋能,才能在市场竞争中保持领先。
|
12月前
|
人工智能 分布式计算 大数据
AI Native平台,跨越AI应用从创新到生产的鸿沟
2024年是AI应用的元年,以大模型为中心的 AI Native 应用大爆发正在从理想变成现实。云计算带来的应用创新潮,经历了虚拟机时代和云原生时代,正在全面拥抱以大模型为核心的 AI Native 阶段,推动大数据与AI的工作流前所未有地紧密结合。领先大模型、高效的AI计算平台和统一的大数据平台是 AI Native 应用广泛落地背后不可获缺的要素。 9月20日,2024云栖大会上,阿里云副总裁、阿里云计算平台事业部负责人汪军华宣布大数据AI平台全面升级,为 AI Native 应用大爆发提供坚实的平台支撑。
|
存储 前端开发 JavaScript
Web前端主题色更换实现方式全解析(一)
Web前端主题色更换实现方式全解析(一)
285 1
|
10月前
|
人工智能 搜索推荐 5G
|
11月前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
438 0
|
Rust 开发工具 开发者
Ruff代码分析
Ruff代码分析
366 0
|
SQL 关系型数据库 MySQL
使用mysql数据库的binlog应对故障
【6月更文挑战第1天】本文介绍`mysql的 binlog`工具用于解析MySQL的二进制日志,转换为可执行的SQL语句,主要用于数据库主从复制和增量恢复。定期备份和binlog推送能实现故障时的数据恢复。
490 9
使用mysql数据库的binlog应对故障
|
小程序 开发者
解决微信小程序因为包太大无法上传:uniapp分包
解决微信小程序因为包太大无法上传:uniapp分包
596 0
|
机器学习/深度学习 自然语言处理 搜索推荐
LangChain在个性化内容生成中的实践
【8月更文第3天】随着人工智能技术的发展,个性化内容生成已经成为许多应用的核心竞争力。LangChain 是一种开源框架,旨在简化语言模型的应用开发,尤其是针对自然语言处理任务。本文将探讨 LangChain 如何帮助开发者根据用户的偏好生成定制化的内容,从挑战到实践策略,再到具体的案例分析和技术实现。
888 1