• 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;
                }
            }

  • 相关阅读:
    git总是需要输入用户名密码问题解决
    安装Elasticsearch与Kibana汉化记录
    ubuntu下通过certbot自动化生成letsencrypt证书配置nginx服务器https记录
    ubuntu通过apt安装最新稳定版nginx记录
    linux磁盘管理与lvm琐事
    docker搭建常用环境记录
    线程池如何复用一个线程-- ThreadPoolExecutor的实现(未完)
    为什么切换线程比切换进程开销小
    Tomcat &servlet字符集编码问题
    字符和字符串在Java中的旅程
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/6748582.html
Copyright © 2020-2023  润新知