Share via


DataGridView.SortCompare Kejadian

Definisi

Terjadi saat membandingkan DataGridView dua nilai sel untuk melakukan operasi pengurutan.

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 

Jenis Acara

Contoh

Contoh kode berikut menunjukkan cara menggunakan dalam pengurutan SortCompare beberapa kolom. Contoh ini adalah bagian dari contoh yang lebih besar yang disediakan dalam Cara: Menyesuaikan Pengurutan di kontrol Formulir Windows DataGridView.

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

Keterangan

Peristiwa ini hanya terjadi ketika DataSource properti tidak diatur dan VirtualMode nilai properti adalah false.

Kejadian ini membandingkan pasangan sel dalam kolom yang sedang diurutkan. Ini terjadi hanya ketika pengguna mengklik header kolom dengan SortMode nilai Automaticproperti , atau saat Anda memanggil Sort(DataGridViewColumn, ListSortDirection) kelebihan beban. Ketika peristiwa ini terjadi untuk kolom dengan SortMode nilai Programmaticproperti , Anda harus menampilkan glyph pengurutan sendiri melalui DataGridViewColumnHeaderCell.SortGlyphDirection properti .

Anda bisa menggunakan kejadian ini untuk mengurutkan baris menggunakan nilai sel dalam satu kolom atau di beberapa kolom. CellValue1 Gunakan properti dan CellValue2 untuk membandingkan nilai sel dalam kolom yang ditentukan dalam Column properti . RowIndex1 Gunakan properti dan RowIndex2 untuk mengakses nilai di kolom lain melalui Rows koleksi.

Untuk informasi selengkapnya tentang cara menangani peristiwa, lihat Menangani dan Menaikkan Peristiwa.

Berlaku untuk

Lihat juga