2

こんにちは皆さんご存知のように、誰かが列ヘッダーをクリックするとソートされます。ただし、ソート後に何かを行うことは可能ですか。昇順で並べ替えると、msgbox が昇順で並べ替えると表示されます。それがどのデータグリッドイベントか知りたいです。可能であれば、列がソートされているかどうかを確認する方法のヒントはありますか? 私はこのリンクを見つけましたが、実際には Web フォームです。Windows フォームでそれを行う必要がありますか?

列ヘッダーをクリックしたときの Datagridview 列の並べ替え

4

2 に答える 2

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

于 2013-07-09T01:01:24.500 に答える
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
于 2013-12-10T13:40:02.987 に答える