如何在datagridview中进行数字排序

时间:2017-07-05 07:27:34

标签: c# delegates eventhandler

我正在使用DataGridView。

ValueType是Object。所以,它从第一个数字开始命令它。

但我想按数字排序。

接下来是我的代码。

public event DataGridViewSortCompareEventHandler OnSortCompare;
DataGridView Grid; 
Grid.ColumnHeaderMouseClick += Grid_ColumnHeaderMouseClick;
Grid.OnSortCompare += new DataGridViewSortCompareEventHandler(Grid_SortCompare);

void Grid_ColumnHeaderMouseClick(object sender,    DataGridViewCellMouseEventArgs e)
{
    OnSortCompare(sender, ***?***); 
}

void Grid_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
   int a = int.Parse(e.CellValue1.ToString());
   int b = int.Parse(e.CellValue2.ToString());
   e.SortResult = a.CompareTo(b);
   e.Handled = true;
}

但我不知道如何传递'e'(DataGridViewSortCompareEventArgs e)。

是' *? * '在我的代码中。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以按以下方式对网格进行排序。

Grid.Sort(Grid.Columns[0], ListSortDirection.Descending);

请注意,必须将列的ValueType设置为正确的类型,否则排序无法正常工作。

Grid.Columns[0].ValueType = typeof(int);