DataGridView.排序了如何判断对哪一列进行了排序
本文关键字:排序 一列 判断 何判断 DataGridView | 更新日期: 2023-09-27 18:33:11
DataGridView.Sorted在用户单击标题对网格进行排序时触发。如何以编程方式判断单击了哪个列标题?和/或对哪一列进行了排序?
我厌倦了下面的代码,但排序事件在点击事件之前触发。两个子的doevents都没有帮助。
我可以将对 GreenBar 的调用移动到单击事件,但这似乎是一个坏主意,因为它取决于触发顺序异常。
Private Sub dgvMAFTrans_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvMAFTrans.ColumnHeaderMouseClick msLastMAFHeaderClicked = dgvMAFTrans.Columns(e.ColumnIndex).Name End Sub
Private Sub dgvMAFTrans_Sorted(sender As Object, e As EventArgs) Handles dgvMAFTrans.Sorted
Application.DoEvents()
GreenBar(dgvMAFTrans, msLastMAFHeaderClicked)
End Sub
添加绿色条的代码会影响:
Sub GreenBar(dgvRef As DataGridView, ColumnName As String)
Dim sLastTrans As String = ""
Dim bAddColor As Boolean = False
If dgvRef.RowCount = 0 Then Exit Sub
Try
sLastTrans = dgvRef.Rows(0).Cells(ColumnName).Value
Catch ex As Exception
Exit Sub ' no transid
End Try
For Each row As DataGridViewRow In dgvRef.Rows
If row.Cells(ColumnName).Value <> sLastTrans Then
bAddColor = Not bAddColor
sLastTrans = row.Cells(ColumnName).Value
End If
If bAddColor Then
row.DefaultCellStyle.BackColor = Color.LightGreen
End If
Next
End Sub
你可以检查DataGridView
的SortedColumn
属性以查看排序的列。
另一个有用的属性是SortOrder
属性。