datagridview排序
时间: 2023-07-06 11:29:53 浏览: 164
源码 gridview相关 自己做的类似GridView 的控件,可以拖动排序,有删除动画.zip
DataGridView可以通过设置它的排序属性来实现排序。可以在DataGridView的ColumnHeaderMouseClick事件中实现排序,例如:
```csharp
private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
// 获取当前点击的列
DataGridViewColumn column = dataGridView1.Columns[e.ColumnIndex];
// 判断当前列是否已经是排序列
if (column.SortMode != DataGridViewColumnSortMode.Programmatic || column.HeaderCell.SortGlyphDirection == SortOrder.None)
{
// 如果不是排序列或者当前列没有排序标志,则按升序排序
dataGridView1.Sort(column, ListSortDirection.Ascending);
column.HeaderCell.SortGlyphDirection = SortOrder.Ascending;
}
else if (column.HeaderCell.SortGlyphDirection == SortOrder.Ascending)
{
// 如果是升序排序,则按降序排序
dataGridView1.Sort(column, ListSortDirection.Descending);
column.HeaderCell.SortGlyphDirection = SortOrder.Descending;
}
else
{
// 如果是降序排序,则取消排序
dataGridView1.Sort(null, ListSortDirection.Ascending);
column.HeaderCell.SortGlyphDirection = SortOrder.None;
}
}
```
以上代码实现了点击DataGridView的列头时按升序、降序和取消排序。注意,DataGridView的ColumnHeaderMouseClick事件只有在列的SortMode属性为Programmatic时才会触发,所以需要在DataGridView中设置要排序的列的SortMode属性为Programmatic。
阅读全文