DataGridView.SortCompare Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje podczas DataGridView porównywania dwóch wartości komórek w celu wykonania operacji sortowania.
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
Typ zdarzenia
Przykłady
W poniższym przykładzie kodu pokazano, jak używać funkcji SortCompare sortowania w wielu kolumnach. Ten przykład jest częścią większego przykładu przedstawionego w temacie Jak dostosować sortowanie w kontrolce DataGridView Windows Forms.
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
Uwagi
To zdarzenie występuje tylko wtedy, gdy DataSource właściwość nie jest ustawiona VirtualMode , a wartość właściwości to false
.
To zdarzenie porównuje pary komórek w sortowanej kolumnie. Występuje tylko wtedy, gdy użytkownik kliknie nagłówek kolumny z wartością SortModeAutomaticwłaściwości lub podczas wywoływania Sort(DataGridViewColumn, ListSortDirection) przeciążenia. Gdy to zdarzenie występuje dla kolumny z wartością SortModeProgrammaticwłaściwości , musisz wyświetlić sortowanie samodzielnie za pomocą DataGridViewColumnHeaderCell.SortGlyphDirection właściwości .
To zdarzenie służy do sortowania wierszy przy użyciu wartości komórek w jednej kolumnie lub w wielu kolumnach. CellValue1 Użyj właściwości iCellValue2, aby porównać wartości komórek w kolumnie określonej we Column właściwości. RowIndex1 Użyj właściwości iRowIndex2, aby uzyskać dostęp do wartości w innych kolumnach za pośrednictwem kolekcjiRows.
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.
Dotyczy
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla