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されておらず、プロパティのfalse値がの場合にのみ発生します。This 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. ColumnプロパティとプロパティCellValue2を使用して、プロパティで指定した列のセルの値を比較します。 CellValue1Use the CellValue1 and CellValue2 properties to compare cell values in the column specified in the Column property. コレクションをRowIndex1通じRowIndex2て他の列の値にアクセスするには、プロパティとプロパティを使用します。 RowsUse 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.