Vb.net Datagridview列单击/排序

Vb.net Datagridview列单击/排序,vb.net,datagridview,columnsorting,Vb.net,Datagridview,Columnsorting,大家好,大家都知道,如果有人单击列标题,它将进行排序。但是,在它们排序之后是否可以执行某些操作。比如,如果它按升序排序,msgbox会提示您按升序排序。我想知道它是哪个datagridevent。如果可能的话,有没有关于如何判断列是否已排序的提示?我找到了这个链接,但它实际上是网络表单,我需要在windows表单中完成它。有什么想法吗 来源:我需要能够排序,但是我动态创建了DataGridView1,所以我不能将代码放在任何地方,因为网格还不存在?非常感谢。你为我节省了太多的时间和头痛:)

大家好,大家都知道,如果有人单击列标题,它将进行排序。但是,在它们排序之后是否可以执行某些操作。比如,如果它按升序排序,msgbox会提示您按升序排序。我想知道它是哪个datagridevent。如果可能的话,有没有关于如何判断列是否已排序的提示?我找到了这个链接,但它实际上是网络表单,我需要在windows表单中完成它。有什么想法吗


来源:

我需要能够排序,但是我动态创建了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