DataGridViewAutoSizeColumnsMode Enumeration


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Defines values for specifying how the widths of columns are adjusted.

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

Public Enumeration DataGridViewAutoSizeColumnsMode

Member nameDescription

The column widths adjust to fit the contents of all cells in the columns, including header cells.


The column widths adjust to fit the contents of all cells in the columns, excluding header cells.


The column widths adjust to fit the contents of the column header cells.


The column widths adjust to fit the contents of all cells in the columns that are in rows currently displayed onscreen, including header cells.


The column widths adjust to fit the contents of all cells in the columns that are in rows currently displayed onscreen, excluding header cells.


The column widths adjust so that the widths of all columns exactly fill the display area of the control, requiring horizontal scrolling only to keep column widths above the DataGridViewColumn.MinimumWidth property values. Relative column widths are determined by the relative DataGridViewColumn.FillWeight property values.


The column widths do not automatically adjust.

The DataGridView control can resize its columns to make them fill the available horizontal width of the control or to make them display the full contents of all cells or of specified cells.

With Fill mode, the preferred width of a column is determined by resizing all columns in that mode so that all visible columns in the control exactly fill the horizontal width of the available display area. With other modes, the preferred column width is the minimum width required to display the largest cell value from all cells or a subset of cells in that column, such as the subset of cells that are in currently displayed rows. Using a subset of cells to determine the new width is useful to avoid a performance penalty when working with many rows of data.

Content-based automatic resizing prevents users from adjusting column widths with the mouse. User resizing is enabled in fill mode, however.

This enumeration is used by the DataGridView control AutoSizeColumnsMode property and AutoResizeColumns method.

For more information about sizing modes, see Sizing Options in the Windows Forms DataGridView Control. For more information about column fill mode in particular, see Column Fill Mode in the Windows Forms DataGridView Control.

The following code example illustrates the use of this enumeration in a master/details scenario where two DataGridView controls display data from two tables in a parent/child relationship. In this example, the column sizing mode for the master control is None and the column widths are programmatically initialized to fit the loaded values. The details control is set to an automatic sizing mode so that columns will adjust automatically whenever the values change (for example, when the user changes the current row in the parent table). This example is part of a larger example available in How to: Create a Master-Detail Form Using Two Windows Forms DataGridView Controls.

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Load

    ' Bind the DataGridView controls to the BindingSource
    ' components and load the data from the database.
    masterDataGridView.DataSource = masterBindingSource
    detailsDataGridView.DataSource = detailsBindingSource

    ' Resize the master DataGridView columns to fit the newly loaded data.

    ' Configure the details DataGridView so that its columns automatically
    ' adjust their widths when the data changes.
    detailsDataGridView.AutoSizeColumnsMode = _

End Sub

.NET Framework
Available since 2.0
Return to top