DataGridView最后一行不排序(winform)

要用到两个事件,CellMouseClick和Sorted事件,C#代码如下:

        List<object[]> lastRow = new List<object[]>();
        int colindex = 0;
        private void dgv_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.RowIndex >= 0 || dgv.Rows.Count == 0)
                return;

            if (lastRow.Count == 0)
            {
                colindex = e.ColumnIndex;
                int index = dgv.Rows.Count - 1;
                lastRow.Add(((DataTable)dgv.DataSource).Rows[index].ItemArray);

                dgv.Rows.Remove(dgv.Rows[dgv.Rows.Count - 1]);
            }
        }

        private void dgv_Sorted(object sender, EventArgs e)
        {
            if (lastRow.Count == 0)
                return;

            DataTable dt=((DataTable)dgv.DataSource);
            DataView dv = dt.DefaultView;  

            dv.Sort = dt.Columns[colindex].ColumnName;  //默认排序为升序,可以自己设定
            dt = dv.ToTable ();
            dt.Rows.Add(lastRow[0]);
            lastRow.Clear();
            dgv.DataSource = dt;
        }


版权声明:本文为gui597651737原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。