我正在用VS2008开发一个C# WinForms应用程序。默认情况下,当单击DataGridView中的列标题时,它会对该列进行升序排序,然后您可以再次单击列标题将其降序排序。
我正在尝试反转,所以第一次单击时按降序排序,第二次单击时按升序排序,但我还不知道该怎么做。有人知道吗?
谢谢
发布于 2009-07-28 13:26:01
您可以将HeaderCell SortGlyphDirection设置为升序,然后下一次单击将显示降序。默认值为none。
dataGridView1.Sort(Column1, ListSortDirection.Ascending);
this.Column1.HeaderCell.SortGlyphDirection = System.Windows.Forms.SortOrder.Ascending;发布于 2010-10-05 15:05:22
foreach (DataGridViewColumn column in DataGridView1.Columns)
{
column.SortMode = DataGridViewColumnSortMode.Programmatic;
}和
private void DataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
var column = DataGridView1.Columns[e.ColumnIndex];
if (column.SortMode != DataGridViewColumnSortMode.Programmatic)
return;
var sortGlyph = column.HeaderCell.SortGlyphDirection;
switch (sortGlyph)
{
case SortOrder.None:
case SortOrder.Ascending:
DataGridView1.Sort(column, ListSortDirection.Descending);
column.HeaderCell.SortGlyphDirection = SortOrder.Descending;
break;
case SortOrder.Descending:
DataGridView1.Sort(column, ListSortDirection.Ascending);
column.HeaderCell.SortGlyphDirection = SortOrder.Ascending;
break;
}
}发布于 2016-12-16 07:19:24
我建议使用以下代码
MyDGV.Sort(MyDGV.Columns[column_Index], ListSortDirection.Ascending);https://stackoverflow.com/questions/1193929
复制相似问题