How to: Freeze Columns in the Windows Forms DataGridView Control
When users view data displayed in a Windows Forms DataGridView control, they sometimes need to refer to a single column or set of columns frequently. For example, when displaying a table of customer information that contains many columns, it is useful to display the customer name at all times while enabling other columns to scroll outside the visible region.
To achieve this behavior, you can freeze columns in the control. When you freeze a column, all the columns to its left (or to its right in right-to-left language scripts) are frozen as well. Frozen columns remain in place while all other columns can scroll.
Note
If column reordering is enabled, the frozen columns are treated as a group distinct from the unfrozen columns. Users can reposition columns in either group, but they cannot move a column from one group to the other.
The Frozen property of a column determines whether the column is always visible within the grid.
There is support for this task in Visual Studio. For more information, see How to: Freeze Columns in the Windows Forms DataGridView Control Using the Designer and How to: Freeze Columns in the Windows Forms DataGridView Control Using the Designer and How to: Freeze Columns in the Windows Forms DataGridView Control Using the Designer and How to: Freeze Columns in the Windows Forms DataGridView Control Using the Designer.
To freeze a column programmatically
Set the DataGridViewColumn.Frozen property to true.
Me.dataGridView1.Columns("AddToCartButton").Frozen = True
this.dataGridView1.Columns["AddToCartButton"].Frozen = true;
Compiling the Code
This example requires:
A DataGridView control named dataGridView1 that contains a column named AddToCartButton.
References to the System and System.Windows.Forms assemblies.
See Also
Tasks
How to: Enable Column Reordering in the Windows Forms DataGridView Control
Reference
Other Resources
Basic Column, Row, and Cell Features in the Windows Forms DataGridView Control