DataGridView.SortCompare Événement

Définition

Se produit lorsque le DataGridView compare deux valeurs de cellule pour effectuer une opération de tri.

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 

Type d'événement

Exemples

L’exemple de code suivant montre comment utiliser dans SortCompare un tri à plusieurs colonnes. Cet exemple fait partie d’un exemple plus large fourni dans How to: Customize Triing 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 DataSource propriété n’est pas définie et que la valeur de la VirtualMode propriété est false.

Cet événement compare des paires de cellules dans la colonne triée. Elle se produit uniquement lorsque l’utilisateur clique sur l’en-tête d’une colonne avec la SortMode valeur de Automaticpropriété , ou lorsque vous appelez la Sort(DataGridViewColumn, ListSortDirection) surcharge. Lorsque cet événement se produit pour une colonne avec la SortMode valeur de Programmaticpropriété , vous devez afficher le glyphe de tri vous-même via la DataGridViewColumnHeaderCell.SortGlyphDirection propriété .

Vous pouvez utiliser cet événement pour trier des lignes à l’aide des valeurs de cellule d’une colonne ou de plusieurs colonnes. Utilisez les CellValue1 propriétés et CellValue2 pour comparer les valeurs de cellule dans la colonne spécifiée dans la Column propriété . Utilisez les RowIndex1 propriétés et RowIndex2 pour accéder aux valeurs d’autres colonnes via la Rows collection.

Pour plus d’informations sur la façon de gérer les événements, consultez gestion et déclenchement d’événements.

S’applique à

Voir aussi