[英]how to Pass only positive values from datagridview1 to datagridview2 in vb.net
[英]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.