winform中datagridview刷新后的排序记忆

datagridview先点标题排序,但是重新刷新之后,还是变成窗体加载后的样子

我这里用定时器刷新的。

1.先定义三个全局变量

/// <summary>
/// 需要排序的列和方向
/// </summary>
private ListSortDirection sortdirection = ListSortDirection.Ascending;

//排序的列
private DataGridViewColumn sortcolumn = null;

//排序列的index

private int sortColindex = -1;

//然后在sorted事件中

sortcolumn = dgvTerminalList.SortedColumn;
sortColindex = sortcolumn.Index;
sortdirection=
dgvTerminalList.SortOrder == SortOrder.Ascending ?
ListSortDirection.Ascending : ListSortDirection.Descending;

//在定时加载数据完之后,再排序一次

//这里要注意列要这样去找一变,否则index会变成0,这样的话就会报错

foreach(DataGridViewColumn col in dgvTerminalList.Columns)
{
if(col.Index==sortColindex)
{
sortcolumn = col;
break;
}
}

//刷新之后记忆排序
if (sortcolumn != null)
{
dgvTerminalList.Sort(sortcolumn, sortdirection);
}

原文地址:https://www.cnblogs.com/Anders888/p/3670173.html