DataGridView.SortOrder 屬性

定義

取得值,指出 DataGridView 控制項中的項目是以遞增或遞減順序排序,或者根本不排序。Gets a value indicating whether the items in the DataGridView control are sorted in ascending or descending order, or are not sorted.

public:
 property System::Windows::Forms::SortOrder SortOrder { System::Windows::Forms::SortOrder get(); };
[System.ComponentModel.Browsable(false)]
public System.Windows.Forms.SortOrder SortOrder { get; }
[<System.ComponentModel.Browsable(false)>]
member this.SortOrder : System.Windows.Forms.SortOrder
Public ReadOnly Property SortOrder As SortOrder

屬性值

SortOrder

其中一個 SortOrder 值。One of the SortOrder values.

屬性

範例

下列程式碼範例示範如何以程式設計的方式來使用 SortOrder 屬性。The following code example demonstrates how to use the SortOrder property in a programmatic sort.

private void sortButton_Click(object sender, System.EventArgs e)
{
    // Check which column is selected, otherwise set NewColumn to null.
    DataGridViewColumn newColumn =
        dataGridView1.Columns.GetColumnCount(
        DataGridViewElementStates.Selected) == 1 ?
        dataGridView1.SelectedColumns[0] : null;

    DataGridViewColumn oldColumn = dataGridView1.SortedColumn;
    ListSortDirection direction;

    // If oldColumn is null, then the DataGridView is not currently sorted.
    if (oldColumn != null)
    {
        // Sort the same column again, reversing the SortOrder.
        if (oldColumn == newColumn &&
            dataGridView1.SortOrder == SortOrder.Ascending)
        {
            direction = ListSortDirection.Descending;
        }
        else
        {
            // Sort a new column and remove the old SortGlyph.
            direction = ListSortDirection.Ascending;
            oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None;
        }
    }
    else
    {
        direction = ListSortDirection.Ascending;
    }

    // If no column has been selected, display an error dialog  box.
    if (newColumn == null)
    {
        MessageBox.Show("Select a single column and try again.",
            "Error: Invalid Selection", MessageBoxButtons.OK,
            MessageBoxIcon.Error);
    }
    else
    {
        dataGridView1.Sort(newColumn, direction);
        newColumn.HeaderCell.SortGlyphDirection =
            direction == ListSortDirection.Ascending ?
            SortOrder.Ascending : SortOrder.Descending;
    }
}
Private Sub SortButton_Click(ByVal sender As Object, _
    ByVal e As EventArgs) Handles sortButton.Click

    ' Check which column is selected, otherwise set NewColumn to Nothing.
    Dim newColumn As DataGridViewColumn
    If dataGridView1.Columns.GetColumnCount(DataGridViewElementStates _
        .Selected) = 1 Then
        newColumn = dataGridView1.SelectedColumns(0)
    Else
        newColumn = Nothing
    End If

    Dim oldColumn As DataGridViewColumn = dataGridView1.SortedColumn
    Dim direction As ListSortDirection

    ' If oldColumn is null, then the DataGridView is not currently sorted.
    If oldColumn IsNot Nothing Then

        ' Sort the same column again, reversing the SortOrder.
        If oldColumn Is newColumn AndAlso dataGridView1.SortOrder = _
            SortOrder.Ascending Then
            direction = ListSortDirection.Descending
        Else

            ' Sort a new column and remove the old SortGlyph.
            direction = ListSortDirection.Ascending
            oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None
        End If
    Else
        direction = ListSortDirection.Ascending
    End If


    ' If no column has been selected, display an error dialog  box.
    If newColumn Is Nothing Then
        MessageBox.Show("Select a single column and try again.", _
            "Error: Invalid Selection", MessageBoxButtons.OK, _
            MessageBoxIcon.Error)
    Else
        dataGridView1.Sort(newColumn, direction)
        If direction = ListSortDirection.Ascending Then
            newColumn.HeaderCell.SortGlyphDirection = SortOrder.Ascending
        Else
            newColumn.HeaderCell.SortGlyphDirection = SortOrder.Descending
        End If
    End If

End Sub

備註

這個屬性是用來決定當屬性指定的資料行 SortedColumn 具有 SortMode 的屬性值時,所要顯示的排序圖像 AutomaticThis property is used to determine which sorting glyph appears when the column specified by the SortedColumn property has a SortMode property value of Automatic. 當資料行的 SortMode 屬性值為時 Programmatic ,您必須自行透過屬性來顯示和隱藏排序圖像 SortGlyphDirectionWhen the column has a SortMode property value of Programmatic, you must display and hide the sorting glyph yourself through the SortGlyphDirection property. 當資料行的 SortMode 屬性值為時 NotSortable ,您可以顯示排序圖像,但如果資料行已自動調整大小,則不會保留空格。When the column has a SortMode property value of NotSortable, you can display the sorting glyph, but space is not reserved for it if the column is automatically resized.

注意

當您使用自訂排序來排序控制項時,這個屬性的值就沒有意義。The value of this property is not meaningful when you sort the control using custom sorting. 如需自訂排序的詳細資訊,請參閱 Sort 方法和 SortCompare 事件。For more information about custom sorting, see the Sort method and the SortCompare event.

適用於