DataGridView.SortCompare Ereignis

Definition

Tritt ein, wenn die DataGridView zwei Zellwerte vergleicht, um einen Sortiervorgang auszuführen.

public:
 event System::Windows::Forms::DataGridViewSortCompareEventHandler ^ SortCompare;
public event System.Windows.Forms.DataGridViewSortCompareEventHandler SortCompare;
public event System.Windows.Forms.DataGridViewSortCompareEventHandler? SortCompare;
member this.SortCompare : System.Windows.Forms.DataGridViewSortCompareEventHandler 
Public Custom Event SortCompare As DataGridViewSortCompareEventHandler 

Ereignistyp

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie sie in SortCompare einer Sortierung mit mehreren Spalten verwendet wird. Dieses Beispiel ist Teil eines größeren Beispiels unter Gewusst wie: Anpassen der Sortierung im Windows Forms DataGridView-Steuerelements.

private void dataGridView1_SortCompare(object sender,
    DataGridViewSortCompareEventArgs e)
{
    // Try to sort based on the cells in the current column.
    e.SortResult = System.String.Compare(
        e.CellValue1.ToString(), e.CellValue2.ToString());

    // If the cells are equal, sort based on the ID column.
    if (e.SortResult == 0 && e.Column.Name != "ID")
    {
        e.SortResult = System.String.Compare(
            dataGridView1.Rows[e.RowIndex1].Cells["ID"].Value.ToString(),
            dataGridView1.Rows[e.RowIndex2].Cells["ID"].Value.ToString());
    }
    e.Handled = true;
}
Private Sub DataGridView1_SortCompare( _
    ByVal sender As Object, ByVal e As DataGridViewSortCompareEventArgs) _
    Handles DataGridView1.SortCompare

    ' Try to sort based on the contents of the cell in the current column.
    e.SortResult = System.String.Compare(e.CellValue1.ToString(), _
        e.CellValue2.ToString())

    ' If the cells are equal, sort based on the ID column.
    If (e.SortResult = 0) AndAlso Not (e.Column.Name = "ID") Then
        e.SortResult = System.String.Compare( _
            DataGridView1.Rows(e.RowIndex1).Cells("ID").Value.ToString(), _
            DataGridView1.Rows(e.RowIndex2).Cells("ID").Value.ToString())
    End If

    e.Handled = True

End Sub

Hinweise

Dieses Ereignis tritt nur auf, wenn die DataSource Eigenschaft nicht festgelegt ist und der VirtualMode Eigenschaftswert ist false.

Dieses Ereignis vergleicht Zellenpaare in der sortierten Spalte. Dies tritt nur auf, wenn der Benutzer auf die Kopfzeile einer Spalte mit dem SortMode Eigenschaftswert klickt Automaticoder wenn Sie die Sort(DataGridViewColumn, ListSortDirection) Überladung aufrufen. Wenn dieses Ereignis für eine Spalte mit dem SortMode Eigenschaftswert auftritt Programmatic, müssen Sie die Sortier-Glyphe selbst über die DataGridViewColumnHeaderCell.SortGlyphDirection -Eigenschaft anzeigen.

Sie können dieses Ereignis verwenden, um Zeilen mithilfe der Zellwerte in einer Spalte oder in mehreren Spalten zu sortieren. Verwenden Sie die CellValue1 Eigenschaften und CellValue2 , um Zellwerte in der in der Column -Eigenschaft angegebenen Spalte zu vergleichen. Verwenden Sie die RowIndex1 Eigenschaften und RowIndex2 , um über die Rows Auflistung auf Werte in anderen Spalten zuzugreifen.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.

Gilt für:

Weitere Informationen