服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#操作DataGridView设置单元格只读

C#操作DataGridView设置单元格只读

2023-02-15 16:01.NET开发菜鸟 C#

这篇文章介绍了C#操作DataGridView设置单元格只读的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、修改ReadOnly属性

1、设置整个DataGridView只读:

?
1
DataGridView.ReadOnly=true;

此时用户的新增行和删除行操作也被屏蔽了。

2、设置DataGridView内某个单元格不可编辑,例如:设置第二行第一列的单元格不可编辑:

?
1
this.dgv_PropDemo[0, 1].ReadOnly = true;

3、设置DataGridVIew的某列整列不可编辑,例如:设置第二列不可编辑:

?
1
this.dgv_PropDemo.Columns[1].ReadOnly = true;

4、设置DataGridView的某行整行不可编辑,例如:设置第三行不可编辑:

?
1
this.dgv_PropDemo.Rows[2].ReadOnly = true;

二、使用EditMode属性

EditMode属性:获取或设置一个值,该值指示如何开始编辑单元格,属性值是DataGridViewEditMode枚举值之一。

成员名称 说明
EditOnEnter 当单元格接收到焦点时即可开始编辑。在按 Tab 键在行中横向输入值,或按 Enter 键在列中纵向输入值时,此模式非常有用。
EditOnF2 当单元格获得焦点时按 F2 开始编辑。此模式将选择点放置在单元格内容的末尾。
EditOnKeystroke 当单元格获得焦点时按任意字母数字键开始编辑。
EditOnKeystrokeOrF2 当单元格获得焦点时按任意字母数字键或 F2 开始编辑。 默认值
EditProgrammatically 仅在调用 BeginEdit 方法时开始编辑。  

注:除了EditProgrammatically之外,所有DataGridViewEditMode值都允许用户通过双击单元格来开始编辑该单元格。

当DataGridView的EditMode属性被设置为EditProgrammatically时,用户就不能手动编辑单元格的内容了。但是可以通过程序,调用DataGridView.BeginEdit方法,使单元格进入编辑模式进行编辑。

例如:

?
1
this.dgv_PropDemo.BeginEdit(true);

三、根据条件设定单元格的不可编辑状态

当一个一个的通过单元格坐标设定单元格ReadOnly属性的方法太麻烦的时候,你可以通过CellBeginEdit事件来取消单元格的编辑。

示例:

?
1
2
3
4
5
6
7
8
9
10
 private void dgv_PropDemo_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
            DataGridView dgv = sender as DataGridView;
            //当前单元格的列名称等于Sex并且当前单元格的值等于“男”的时候取消编辑
            if (dgv.Columns[e.ColumnIndex].Name == "Sex" && dgv[e.ColumnIndex, e.RowIndex].Value.ToString().Trim() == "男")
            {
                //取消编辑
                e.Cancel = true;
            }
        }

到此这篇关于C#操作DataGridView设置单元格只读的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/dotnet261010/p/6748582.html

延伸 · 阅读

精彩推荐
  • C#C# 程序通用结构

    C# 程序通用结构

    这篇文章主要介绍了C# 程序通用结构,C# 程序由一个或多个文件组成。 每个文件均包含零个或多个命名空间。 一个命名空间包含类、结构、接口、枚举、...

    Microsoft8712022-12-14
  • C#C#实现判断一个时间点是否位于给定时间区间的方法

    C#实现判断一个时间点是否位于给定时间区间的方法

    这篇文章主要介绍了C#实现判断一个时间点是否位于给定时间区间的方法,涉及C#针对时间的转换与判定相关技巧,需要的朋友可以参考下...

    北风其凉6382021-10-19
  • C#FtpHelper实现ftp服务器文件读写操作(C#)

    FtpHelper实现ftp服务器文件读写操作(C#)

    这篇文章主要为大家详细介绍了FtpHelper实现ftp服务器文件读写操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    徐自勉6152021-12-30
  • C#利用WCF双工模式实现即时通讯

    利用WCF双工模式实现即时通讯

    这篇文章主要介绍了利用WCF双工模式实现即时通讯的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    会长4212021-12-07
  • C#C#线程委托实现原理及方法解析

    C#线程委托实现原理及方法解析

    这篇文章主要介绍了C#线程委托实现原理及方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    八英里4212022-10-09
  • C#C#自定义基于控制台的Timer实例

    C#自定义基于控制台的Timer实例

    这篇文章主要介绍了C#自定义基于控制台的Timer实现方法,可以简单模拟timer控件的相关功能,具有一定参考借鉴价值,需要的朋友可以参考下...

    北风其凉9832021-10-19
  • C#Unity利用材质自发光实现物体闪烁

    Unity利用材质自发光实现物体闪烁

    这篇文章主要为大家详细介绍了Unity利用材质自发光实现物体闪烁,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Symbolizer8032022-07-19
  • C#解决unity rotate旋转物体 限制物体旋转角度的大坑

    解决unity rotate旋转物体 限制物体旋转角度的大坑

    这篇文章主要介绍了解决unity rotate旋转物体 限制物体旋转角度的大坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    aldonaletto9912022-11-12