DataGridView.SortCompare Evento

Definición

Se produce cuando DataGridView compara dos valores de celda para realizar una operación de ordenación.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 

Tipo de evento

DataGridViewSortCompareEventHandler

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar SortCompare en una ordenación de varias columnas.The following code example demonstrates how to use the SortCompare in a multiple column sort. Este ejemplo forma parte de un ejemplo más grande que se proporciona en Cómo: personalizar la ordenación en el control DataGridView Windows Forms.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

Comentarios

Este evento solo se produce cuando DataSource no se establece la propiedad y el valor de la VirtualMode propiedad es false .This event occurs only when the DataSource property is not set and the VirtualMode property value is false.

Este evento compara pares de celdas en la columna que se está ordenando.This event compares pairs of cells in the column being sorted. Solo se produce cuando el usuario hace clic en el encabezado de una columna con un SortMode valor de propiedad de Automatic , o cuando se llama a la Sort(DataGridViewColumn, ListSortDirection) sobrecarga.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. Cuando este evento se produce para una columna con un SortMode valor de propiedad de Programmatic , debe mostrar el glifo de ordenación a través de la DataGridViewColumnHeaderCell.SortGlyphDirection propiedad.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.

Puede usar este evento para ordenar filas utilizando los valores de celda de una columna o de varias columnas.You can use this event to sort rows using the cell values in one column or in multiple columns. Utilice las CellValue1 CellValue2 propiedades y para comparar los valores de celda de la columna especificada en la Column propiedad.Use the CellValue1 and CellValue2 properties to compare cell values in the column specified in the Column property. Utilice las RowIndex1 RowIndex2 propiedades y para tener acceso a los valores de otras columnas a través de la Rows colección.Use the RowIndex1 and RowIndex2 properties to access values in other columns through the Rows collection.

Para obtener más información acerca de cómo controlar eventos, vea controlar y provocar eventos.For more information about how to handle events, see Handling and Raising Events.

Se aplica a

Consulte también