2013-07-09 7 views
2

HI ребята, как вы все знаете, если кто-то щелкнет заголовок столбца, он будет сортировать. Однако возможно ли что-то сделать после их сортировки. Как если бы он сортировал восходящий, msgbox подсказывал, что вы сортируете по возрастанию. Я хотел бы знать, какой datagridevent это. Если возможно, какие-либо подсказки о том, как определить, отсортирован ли столбец или нет? Я нашел эту ссылку, но ее фактическая веб-форма мне нужно сделать в окнах из каких-либо идей?Datagridview Column Click/Sort

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 
Смежные вопросы