DataGridView.SortCompare Evento

Definición

Se produce cuando DataGridView compara dos valores de celda para realizar una operación de ordenación.

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 

Tipo de evento

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar en SortCompare una ordenación de varias columnas. Este ejemplo forma parte de un ejemplo más grande proporcionado en 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 la DataSource propiedad no se establece y el valor de la VirtualMode propiedad es false.

Este evento compara pares de celdas de la columna que se ordenan. 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. Cuando se produce este evento para una columna con un SortMode valor de propiedad de Programmatic, debe mostrar el glifo de ordenación usted mismo a través de la DataGridViewColumnHeaderCell.SortGlyphDirection propiedad .

Puede usar este evento para ordenar filas mediante los valores de celda de una columna o en varias columnas. Utilice las CellValue1 propiedades y CellValue2 para comparar los valores de celda de la columna especificada en la Column propiedad . Use las RowIndex1 propiedades y RowIndex2 para tener acceso a los valores de otras columnas a través de la Rows colección.

Para obtener más información acerca de cómo controlar eventos, vea controlar y provocar eventos.

Se aplica a

Consulte también