DataGridView.SortCompare Kejadian
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.