dataGridView 排除第一行排序

1、在sorted事件中把排除行记录下来 ,sorted事件是排序完成时才触发的,并且早于ColumnHeaderMouseClick事件      

private void dgvDateReport_Sorted(object sender, EventArgs e)

        {
            if (lastRow.Count <= 0)
            {
                dgvDateReport.Rows[0].Frozen = false;              //解除冻结
                dgvDateReport.Columns[3].Frozen = false;
                string str = dgvDateReport.Rows[0].Cells[0].Value.ToString();   //取得行数据
                int index;
                if (str == "")            //判断需要排除的行是否在第一行
                {
                    index = 0;        //判断需要排除的行在第一行
                }
                else
                {
                    index = dgvDateReport.Rows.Count-1;     //判断需要排除的行在最后一行
                }
                lastRow.Add(dgvDateReport.Rows[index]);       //记录
                dgvDateReport.Rows.RemoveAt(index);            //删除
            }

        }


2、在ColumnHeaderMouseClick事件中把记录的排除行再添加到第一行

      private void dgvDateReport_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.ColumnIndex >= 0 && e.ColumnIndex < 4)
            {
                if (e.RowIndex >= 0 || dgvDateReport.Rows.Count == 0)
                    return;
                if (lastRow.Count <= 0)
                    return;
                dgvDateReport.Rows.Insert(0,lastRow[0]);
                lastRow.Clear();
                dgvDateReport.Rows[0].Frozen = true;
                dgvDateReport.Columns[3].Frozen = true;

            }
        }

3、效果如图


4、列禁止自动排序

dgvDateReport.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;



.


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值