DataGridView.SortCompare DataGridView.SortCompare DataGridView.SortCompare DataGridView.SortCompare Event


DataGridView が並べ替え操作を実行するために 2 つのセルの値を比較する場合に発生します。Occurs when the DataGridView compares two cell values to perform a sort operation.

 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 

次のコード例は、使用する方法を示します、SortCompare複数の列の並べ替えにします。The following code example demonstrates how to use the SortCompare in a multiple column sort. この例で示されている例の一部は、方法。Windows フォームの 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(
    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(), _

    ' 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(), _
    End If

    e.Handled = True

End Sub


のみでこのイベントが発生したときに、DataSourceプロパティが設定されていない、VirtualModeプロパティの値がfalseThis 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.

このイベントは、1 つの列または複数の列のセルの値を使用して行の並べ替えに使用できます。You can use this event to sort rows using the cell values in one column or in multiple columns. 使用して、CellValue1CellValue2プロパティで指定された列のセルの値を比較する、Columnプロパティ。Use the CellValue1 and CellValue2 properties to compare cell values in the column specified in the Column property. 使用して、RowIndex1RowIndex2を介して他の列の値にアクセスするプロパティ、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.