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

 更新时间:2022年02月26日 17:07:12   作者:.NET开发菜鸟  
这篇文章介绍了C#操作DataGridView设置单元格只读的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、修改ReadOnly属性

1、设置整个DataGridView只读:

DataGridView.ReadOnly=true;

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

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

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

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

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

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

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方法,使单元格进入编辑模式进行编辑。

例如:

this.dgv_PropDemo.BeginEdit(true);

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

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

示例:

 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设置单元格只读的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#异步下载文件

    C#异步下载文件

    这篇文章主要介绍了C#异步下载文件的相关资料,需要的朋友可以参考下
    2016-01-01
  • C#中LINQ to Objects查询的实现

    C#中LINQ to Objects查询的实现

    LINQ to Objects是LINQ技术在C#中的一种应用,它专门用于对内存中的对象集合进行查询和操作,本文就详细的介绍C#中LINQ to Objects查询的实现,感兴趣的可以了解一下
    2023-08-08
  • C#实现设置或屏蔽热键的方法详解

    C#实现设置或屏蔽热键的方法详解

    这篇文章主要为大家详细介绍了如何利用C#实现设置或屏蔽热键,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • 聚星C#数字信号处理工具包频谱分析的用法

    聚星C#数字信号处理工具包频谱分析的用法

    这篇文章主要介绍了聚星C#数字信号处理工具包频谱分析的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • C#实现六大设计原则之接口隔离原则

    C#实现六大设计原则之接口隔离原则

    这篇文章介绍了C#实现六大设计原则之接口隔离原则的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • C#实现几十万级数据导出Excel及Excel各种操作实例

    C#实现几十万级数据导出Excel及Excel各种操作实例

    本篇文章主要介绍了C#实现几十万级数据导出Excel及Excel各种操作实例,这里整理了详细的代码,有需要的小伙伴可以参考下。
    2017-02-02
  • C#控制台实现飞行棋小游戏

    C#控制台实现飞行棋小游戏

    这篇文章主要为大家详细介绍了C#控制台实现飞行棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C#中TCP粘包问题的解决方法

    C#中TCP粘包问题的解决方法

    这篇文章主要为大家详细介绍了C#中TCP粘包问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • C#确保只有一个实例在运行的方法

    C#确保只有一个实例在运行的方法

    这篇文章主要介绍了C#确保只有一个实例在运行的方法,涉及C#进程操作的相关技巧,需要的朋友可以参考下
    2015-05-05
  • C#将HashTable中键列表或值列表复制到一维数组的方法

    C#将HashTable中键列表或值列表复制到一维数组的方法

    这篇文章主要介绍了C#将HashTable中键列表或值列表复制到一维数组中方法,涉及C#操作HashTable的相关技巧,需要的朋友可以参考下
    2015-04-04

最新评论