DataGridViewColumn.SortMode Property

Note: This property is new in the .NET Framework version 2.0.

Gets or sets the sort mode for the column.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in

public DataGridViewColumnSortMode SortMode { get; set; }
/** @property */
public DataGridViewColumnSortMode get_SortMode ()

/** @property */
public void set_SortMode (DataGridViewColumnSortMode value)

public function get SortMode () : DataGridViewColumnSortMode

public function set SortMode (value : DataGridViewColumnSortMode)

Property Value

A DataGridViewColumnSortMode that specifies the criteria used to order the rows based on the cell values in a column.

Exception typeCondition


The value assigned to the property conflicts with SelectionMode.

When a DataGridView control is sorted using a column with a SortMode property value of Automatic, a sorting glyph is automatically displayed in the column header.

When the control is sorted using a column with a SortMode property value of Programmatic, you must display the sorting glyph yourself through the SortGlyphDirection property.

The default sort mode of a DataGridViewTextBoxColumn is Automatic. The default sort mode for other column types is NotSortable.

The SortMode value does not prevent you from sorting a column programmatically, although other restrictions may apply. For more information, see the Sort method.

A SortMode property value of NotSortable will not prevent the DataGridView.ColumnHeaderMouseClick event from occurring, but it will prevent the header from changing its appearance when it is clicked.

The following code example demonstrates how to use the SortMode property to disable sorting by a specified column in a multicolumn sort.

// Replace this with your own population code.
public void PopulateDataGridView()
    // Add columns to the DataGridView.
    dataGridView1.ColumnCount = 3;

    // Set the properties of the DataGridView columns.
    dataGridView1.Columns[0].Name = "ID";
    dataGridView1.Columns[1].Name = "Name";
    dataGridView1.Columns[2].Name = "City";
    dataGridView1.Columns["ID"].HeaderText = "ID";
    dataGridView1.Columns["Name"].HeaderText = "Name";
    dataGridView1.Columns["City"].HeaderText = "City";

    // Add rows of data to the DataGridView.
    dataGridView1.Rows.Add(new string[] { "1", "Parker", "Seattle" });
    dataGridView1.Rows.Add(new string[] { "2", "Parker", "New York" });
    dataGridView1.Rows.Add(new string[] { "3", "Watson", "Seattle" });
    dataGridView1.Rows.Add(new string[] { "4", "Jameson", "New Jersey" });
    dataGridView1.Rows.Add(new string[] { "5", "Brock", "New York" });
    dataGridView1.Rows.Add(new string[] { "6", "Conner", "Portland" });

    // Autosize the columns.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0

Community Additions