Если вы хотите отсортировать его всегда в Descending
порядке, попробуйте этот код:
void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
dataGridView1.Sort(dataGridView1.Columns[dataGridView1.SortedColumn.Name],ListSortDirection.Descending);
}
Если вы хотите чередовать и начать с нисходящее первым, а затем подъем на 2-го. Вы могли бы объявить глобальную переменную (по крайней мере, в своей форме), как:
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);
}
}
Вы хотите отсортировать его по убыванию сначала перед восходящим, когда вы сначала нажмете заголовок столбца? Это то, что вы имеете в виду? – Edper