繁体   English   中英

如何从vb.net中的datagridview对负值和正值进行排序?

[英]How do I sort negative and positive values from a datagridview in vb.net?

我对编码比较陌生,我希望有人可以帮我在datagridview中对一列负值和正值进行排序。 它没有连接到数据表,因为我只读取文本文件中的值,它使用逗号分隔每个数据位并在datagridview中显示它。 我试过使用这段代码:

DGV.Sort(DGV.Columns(2), System.ComponentModel.ListSortDirection.descending)

但是它只根据值的第一个整数进行排序,并忽略负号,例如,如果该列下的单元格有

3
-5
-2

它会排序,所以它会

-5
3
-2

我如何排序以便将负号考虑在内?

就目前而言,网格中的值是文本,而不是数字。 因此,网格将它们排序为文本而不是数字。 如果您希望网格自动将它们排序为数字,那么它们实际上必须是数字。

你似乎没有说你想要标准的数字排序。 你似乎在说你想要的是按绝对值排序。 这意味着与您要求的完全相反,即您希望它忽略负号并仅按数字排序。 无论文本或数字如何,这都不会自动发生。

在这种情况下,您将必须处理网格的SortCompare事件。 在事件处理程序中,您可以将文本转换为数字,获取绝对值并自行比较,例如

Dim num1 As Integer
Dim num2 As Integer

If Integer.TryParse(CStr(e.CellValue1), num1) AndAlso Integer.TryParse(CStr(e.CellValue2), num2) Then
    'Order the numbers based on their absolute value.
    e.SortResult = Math.Abs(num1).CompareTo(Math.Abs(num2))
Else
    'At least one of the values is not a number so consider them equivalent for sorting purposes.
    e.SortResult = 0
End If

e.Handled = True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM