DataGridView.SortCompare Olay

Tanım

bir sıralama işlemi gerçekleştirmek için iki hücre değerini karşılaştırdığında DataGridView gerçekleşir.

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 

Olay Türü

Örnekler

Aşağıdaki kod örneği, öğesinin birden çok sütunlu sıralamada nasıl kullanılacağını SortCompare gösterir. Bu örnek, Windows Forms DataGridView Denetiminde Nasıl Yapılır: Sıralamayı Özelleştirme bölümünde sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

Bu olay yalnızca özelliği ayarlanmadığında DataSource ve VirtualMode özellik değeri olduğunda falsegerçekleşir.

Bu olay, sıralanan sütundaki hücre çiftlerini karşılaştırır. Yalnızca kullanıcı özelliği değerine Automaticsahip SortMode bir sütunun üst bilgisine tıkladığında veya aşırı yüklemeyi çağırdığınızda Sort(DataGridViewColumn, ListSortDirection) oluşur. Bu olay özelliği değerine Programmaticsahip bir SortMode sütun için gerçekleştiğinde, sıralama karakterinizi özelliği aracılığıyla DataGridViewColumnHeaderCell.SortGlyphDirection kendiniz görüntülemeniz gerekir.

Bir sütundaki veya birden çok sütundaki hücre değerlerini kullanarak satırları sıralamak için bu olayı kullanabilirsiniz. özelliğinde CellValue1 belirtilen Column sütundaki hücre değerlerini karşılaştırmak için ve CellValue2 özelliklerini kullanın. RowIndex1 Koleksiyon aracılığıyla Rows diğer sütunlardaki değerlere erişmek için ve RowIndex2 özelliklerini kullanın.

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Şunlara uygulanır

Ayrıca bkz.