Vb.net Datagridview列单击/排序
大家好,大家都知道,如果有人单击列标题,它将进行排序。但是,在它们排序之后是否可以执行某些操作。比如,如果它按升序排序,msgbox会提示您按升序排序。我想知道它是哪个datagridevent。如果可能的话,有没有关于如何判断列是否已排序的提示?我找到了这个链接,但它实际上是网络表单,我需要在windows表单中完成它。有什么想法吗Vb.net Datagridview列单击/排序,vb.net,datagridview,columnsorting,Vb.net,Datagridview,Columnsorting,大家好,大家都知道,如果有人单击列标题,它将进行排序。但是,在它们排序之后是否可以执行某些操作。比如,如果它按升序排序,msgbox会提示您按升序排序。我想知道它是哪个datagridevent。如果可能的话,有没有关于如何判断列是否已排序的提示?我找到了这个链接,但它实际上是网络表单,我需要在windows表单中完成它。有什么想法吗 来源:我需要能够排序,但是我动态创建了DataGridView1,所以我不能将代码放在任何地方,因为网格还不存在?非常感谢。你为我节省了太多的时间和头痛:)
来源:我需要能够排序,但是我动态创建了DataGridView1,所以我不能将代码放在任何地方,因为网格还不存在?非常感谢。你为我节省了太多的时间和头痛:)
Private Sub dataGridView1_ColumnHeaderMouseClick(ByVal sender As Object, _
ByVal e As DataGridViewCellMouseEventArgs) _
Handles dataGridView1.ColumnHeaderMouseClick
Dim newColumn As DataGridViewColumn = _
dataGridView1.Columns(e.ColumnIndex)
Dim oldColumn As DataGridViewColumn = dataGridView1.SortedColumn
Dim direction As ListSortDirection
' If oldColumn is null, then the DataGridView is not currently sorted.
If oldColumn IsNot Nothing Then
' Sort the same column again, reversing the SortOrder.
If oldColumn Is newColumn AndAlso dataGridView1.SortOrder = _
SortOrder.Ascending Then
direction = ListSortDirection.Descending
' Msgbox HERE
Else
' Sort a new column and remove the old SortGlyph.
direction = ListSortDirection.Ascending
oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None
' Msgbox HERE
End If
Else
direction = ListSortDirection.Ascending
' Msgbox HERE
End If
' Sort the selected column.
dataGridView1.Sort(newColumn, direction)
If direction = ListSortDirection.Ascending Then
newColumn.HeaderCell.SortGlyphDirection = SortOrder.Ascending
Else
newColumn.HeaderCell.SortGlyphDirection = SortOrder.Descending
End If
End Sub
Private Sub dataGridView1_DataBindingComplete(ByVal sender As Object, _
ByVal e As DataGridViewBindingCompleteEventArgs) _
Handles dataGridView1.DataBindingComplete
' Put each of the columns into programmatic sort mode.
For Each column As DataGridViewColumn In dataGridView1.Columns
column.SortMode = DataGridViewColumnSortMode.Programmatic
Next
End Sub
If _Data_Table.Rows.Count > 0 Then
datagridview.DataSource = _Data_Table
datagridview.Sort(grd_Cadastro.Columns("Your column name"), System.ComponentModel.ListSortDirection.Descending)
datagridview.AutoResizeColumns()
datagridview.ClearSelection()
Else
datagridview.DataSource = Nothing
End If