Reputation: 187
HI guys as you all know if someone clicks the column header it will sort. However is it possible to do something after they sort. Like if it sort ascending a msgbox would prompt out saying you sort ascending. I would like to know which datagridevent it is. If possible any tips of how to tell whether the column is sorted or not? i found this link but its actually Web Form i need to do it in windows form any ideas?
Datagridview column sorting when clicking on the column header
Upvotes: 2
Views: 17651
Reputation: 137
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
Upvotes: 0
Reputation: 2279
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
Source : MSDN
Upvotes: 4