DataGridView.SortCompare Événement

Définition

Se produit lorsque le DataGridView compare deux valeurs de cellule pour effectuer une opération de tri.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 

Exemples

L’exemple de code suivant montre comment utiliser la SortCompare dans un tri sur plusieurs colonnes.The following code example demonstrates how to use the SortCompare in a multiple column sort. Cet exemple fait partie d’un exemple plus complet fourni dans How à : Personnaliser le tri dans le Windows Forms contrôle DataGridView.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

Remarques

Cet événement se produit uniquement lorsque la propriété DataSource n’est pas définie et que la valeur de la propriété VirtualMode est false.This event occurs only when the DataSource property is not set and the VirtualMode property value is false.

Cet événement compare les paires de cellules de la colonne en cours de tri.This event compares pairs of cells in the column being sorted. Il se produit uniquement quand l’utilisateur clique sur l’en-tête d’une colonne avec une valeur de propriété SortMode égale à Automatic ou lorsque vous appelez la surcharge Sort(DataGridViewColumn, ListSortDirection).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. Lorsque cet événement se produit pour une colonne avec une valeur de propriété SortMode de Programmatic, vous devez afficher le glyphe de tri vous-même via la propriété DataGridViewColumnHeaderCell.SortGlyphDirection.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.

Vous pouvez utiliser cet événement pour trier les lignes à l’aide des valeurs des cellules d’une colonne ou de plusieurs colonnes.You can use this event to sort rows using the cell values in one column or in multiple columns. Utilisez les propriétés CellValue1 et CellValue2 pour comparer les valeurs des cellules de la colonne spécifiée dans la propriété Column.Use the CellValue1 and CellValue2 properties to compare cell values in the column specified in the Column property. Utilisez les propriétés RowIndex1 et RowIndex2 pour accéder aux valeurs d’autres colonnes via la collection Rows.Use the RowIndex1 and RowIndex2 properties to access values in other columns through the Rows collection.

Pour plus d’informations sur la façon de gérer les événements, consultez gestion et déclenchement d’événements.For more information about how to handle events, see Handling and Raising Events.

S’applique à

Voir aussi