DataGridView.SortCompare DataGridView.SortCompare DataGridView.SortCompare DataGridView.SortCompare Event

Definition

Tritt ein, wenn die DataGridView zwei Zellwerte vergleicht, um einen Sortiervorgang auszuführen.Occurs when the DataGridView compares two cell values to perform a sort operation.

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 

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die SortCompare in einer Sortierung mit mehreren Spalten verwendet wird.The following code example demonstrates how to use the SortCompare in a multiple column sort. Dieses Beispiel ist Teil eines größeren Beispiels, das unter Vorgehensweise: Passen Sie die Sortierung im Windows Forms DataGridView-Steuerelement an.This example is part of a larger example provided in How to: Customize Sorting in the Windows Forms DataGridView Control.

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, DataSource wenn die-Eigenschaft nicht fest VirtualMode gelegt ist und falseder-Eigenschafts Wert ist.This event occurs only when the DataSource property is not set and the VirtualMode property value is false.

Dieses Ereignis vergleicht Paare von Zellen in der Spalte, die sortiert wird.This event compares pairs of cells in the column being sorted. Sie tritt nur auf SortMode Automatic, wenn der Benutzer auf den Header einer Spalte mit dem-Eigenschafts Wert klickt oder wenn Sie Sort(DataGridViewColumn, ListSortDirection) die-Überladung aufrufen.It occurs only when the user clicks the header of a column with a SortMode property value of Automatic, or when you call the Sort(DataGridViewColumn, ListSortDirection) overload. Wenn dieses Ereignis für eine Spalte mit SortMode dem-Eigenschafts ProgrammaticWert auftritt, müssen Sie das Sortier Symbol selbst über die DataGridViewColumnHeaderCell.SortGlyphDirection -Eigenschaft anzeigen.When this event occurs for a column with a SortMode property value of Programmatic, you must display the sorting glyph yourself through the DataGridViewColumnHeaderCell.SortGlyphDirection property.

Mit diesem Ereignis können Sie Zeilen mithilfe der Zellwerte in einer Spalte oder in mehreren Spalten sortieren.You can use this event to sort rows using the cell values in one column or in multiple columns. Verwenden Sie CellValue1 die CellValue2 Eigenschaften und, um Zellwerte in der in der Column -Eigenschaft angegebenen Spalte zu vergleichen.Use the CellValue1 and CellValue2 properties to compare cell values in the column specified in the Column property. Verwenden Sie RowIndex1 die RowIndex2 -Eigenschaft und die-Eigenschaft, um über Rows die-Auflistung auf Werte in anderen SpaltenUse the RowIndex1 and RowIndex2 properties to access values in other columns through the Rows collection.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.For more information about how to handle events, see Handling and Raising Events.

Gilt für:

Siehe auch