DataGridView.SortCompare Событие

Определение

Происходит, когда объект DataGridView сравнивает две ячейки значений, чтобы выполнить операцию сортировки.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 

Тип события

DataGridViewSortCompareEventHandler

Примеры

В следующем примере кода показано, как использовать SortCompare в сортировке нескольких столбцов.The following code example demonstrates how to use the SortCompare in a multiple column sort. Этот пример является частью большого примера, приведенного в разделе как настроить сортировку в элементе управления Windows Forms 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

Комментарии

Это событие возникает только в том случае, если DataSource свойство не задано и VirtualMode значение свойства равно false .This event occurs only when the DataSource property is not set and the VirtualMode property value is false.

Это событие сравнивает пары ячеек в сортируемом столбце.This event compares pairs of cells in the column being sorted. Это происходит только в том случае, если пользователь щелкает заголовок столбца со SortMode значением свойства Automatic или при вызове 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. Когда это событие происходит для столбца со SortMode значением свойства Programmatic , необходимо самостоятельно отобразить глиф сортировки с помощью 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.

Это событие можно использовать для сортировки строк с помощью значений ячеек в одном столбце или в нескольких столбцах.You can use this event to sort rows using the cell values in one column or in multiple columns. Используйте CellValue1 Свойства и CellValue2 для сравнения значений ячеек в столбце, указанном в Column свойстве.Use the CellValue1 and CellValue2 properties to compare cell values in the column specified in the Column property. Используйте RowIndex1 Свойства и RowIndex2 для доступа к значениям в других столбцах через Rows коллекцию.Use the RowIndex1 and RowIndex2 properties to access values in other columns through the Rows collection.

Дополнительные сведения об обработке событий см. в разделе обработка и вызов событий.For more information about how to handle events, see Handling and Raising Events.

Применяется к

См. также раздел