2013-07-09 150 views
2

嗨,大家好,大家都知道是否有人點擊了它將排序的列標題。但是排序後可以做些什麼。就好像它按升序排列一個msgbox會提示你按升序排序。我想知道它是哪個datagridevent。如果可能的話,如何判斷列是否被排序?我發現這個鏈接,但它的實際Web窗體我需要在Windows窗體中做任何想法?Datagridview列點擊/排序

Datagridview column sorting when clicking on the column header

回答

3
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 

來源:MSDN

+0

我需要能夠進行排序,但我動態創建DataGridView1,所以我不能把上面的任何地方的代碼,因爲電網還不存在? – wrtsvkrfm

0
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