当前位置:  开发笔记 > 开发工具 > 正文

禁用数据网格视图中的行选择

如何解决《禁用数据网格视图中的行选择》经验,为你挑选了1个好方法。

我想禁用datagridview中某些行的选择.

必须可以删除winform中显示的datagridview中的一个或多个datagridview行的select属性.目标是用户无法选择某些行.(视情况而定)

Thankx,



1> szevvy..:

如果SelectionMode是FullRowSelect,那么您将需要覆盖该DataGridView的SetSelectedRowCore,而不是为您不想选择的行调用基本SetSelectedRowCore.

如果SelectionMode不是FullRowSelect,则您还需要覆盖SetSelectedCellCore(而不是为您不希望选择的行调用基本SetSelectedCellCore),因为只有单击行标题而不是单个单元格时,SetSelectedRowCore才会启动.

这是一个例子:

public class MyDataGridView : DataGridView
{
    protected override void SetSelectedRowCore(int rowIndex, bool selected)
    {
        if (selected && WantRowSelection(rowIndex))
        {
            base.SetSelectedRowCore(rowIndex, selected);
        }
     }

     protected virtual void SetSelectedCellCore(int columnIndex, int rowIndex, bool selected)
     {
         if (selected && WantRowSelection(rowIndex))
         {
            base.SetSelectedRowCore(rowIndex, selected);
          }
     }

     bool WantRowSelection(int rowIndex)
     {
        //return true if you want the row to be selectable, false otherwise
     }
}

如果您正在使用WinForms,请打开您的designer.cs以获取相关表单,并更改DataGridView实例的声明以使用此新类而不是DataGridView,并替换this.blahblahblah = new System.Windows.Forms. DataGridView()指向新类.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有