如果您想始终按Descending 顺序对其进行排序,请尝试以下代码:
void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
dataGridView1.Sort(dataGridView1.Columns[dataGridView1.SortedColumn.Name],ListSortDirection.Descending);
}
如果您想交替并从第一个降序开始,然后在第二个升序开始。您可以声明一个全局变量(至少在您的表单中),例如:
Boolean lastSortedAscending = false;
那么您的ColumnHeaderMouseClick 事件可能如下所示:
void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
lastSortedAscending = !lastSortedAscending;
if ( lastSortedAscending)
{
dataGridView1.Sort(dataGridView1.Columns[dataGridView1.SortedColumn.Name],ListSortDirection.Descending);
}
else
{
dataGridView1.Sort(dataGridView1.Columns[dataGridView1.SortedColumn.Name],ListSortDirection.Ascending);
}
}
或者不声明全局变量 - 你也可以这样做,例如:
void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (dataGridView1.SortOrder.ToString() == "Ascending") // Check if sorting is Ascending
{
dataGridView1.Sort(dataGridView1.Columns[dataGridView1.SortedColumn.Name],ListSortDirection.Descending);
}
else
{
dataGridView1.Sort(dataGridView1.Columns[dataGridView1.SortedColumn.Name],ListSortDirection.Ascending);
}
}