[C#] DataGridView處理列重新排序事件


Answers

“使用ColumnDisplayIndexChanged”事件看起來是正確的。 它為我工作。 (我會添加一個評論,我有代表。

該事件的事件處理程序將包含反映該列的新值的e.Column。 您正在查找的屬性是DisplayIndex。 請注意,事件將觸發DisplayIndex更改的每個列。

在vb.net中:

Private Sub data_ColumnDisplayIndexChanged(sender As Object, e As System.Windows.Forms.DataGridViewColumnEventArgs) Handles data.ColumnDisplayIndexChanged

    Debug.Print(e.Column.DisplayIndex & vbTab & e.Column.Name)

End Sub

由於事件會在啟動時觸發(多次),因此您可能需要添加某種邏輯,以防止在添加列或根據以前的設置重新排列列時觸發它。

Private Sub dataAnts_ColumnDisplayIndexChanged(sender As Object, e As System.Windows.Forms.DataGridViewColumnEventArgs) Handles dataAnts.ColumnDisplayIndexChanged

    If bSortingColumns = False Then
        Debug.Print(e.Column.DisplayIndex & vbTab & e.Column.Name)
    End If

End Sub

或者在啟動代碼完成後以編程方式添加事件處理程序。

MSDN鏈接。

Question

我為我的DataGridView對象設置

AllowUserToOrderColumns = true;

我如何檢測列重新排序?




使用ColumnDisplayIndexChanged事件




Links