With these values, you can limit which cells are used to calculate the preferred sizes.
For example, if a column is hidden after it is automatically sized to fit a large cell value, the hidden column will not change its size if the row containing the large cell value is deleted.
Content-based automatic sizing modes do not affect rows, columns, or headers that you have hidden by setting the row or column Visible property or the control Row Headers Visible or Column Headers Visible properties to false.
You can customize sizing behaviors when working with derived Data Grid View cell, row, and column types by overriding the Data Grid View Cell. The protected resizing method overloads are designed to work in pairs to achieve an ideal cell height-to-width ratio, avoiding overly wide or tall cells.
For example, you might programmatically resize all columns immediately after loading data, or you might programmatically resize a specific row after a particular cell value has been modified. Get Preferred Width() methods or by calling protected resizing method overloads in a derived Data Grid View control.
Column fill mode causes the visible columns in the control to fill the width of the control's display area.
There are two kinds of automatic sizing in the Data Grid View control: column fill mode and content-based automatic sizing.
If content-based automatic sizing is enabled for one dimension only—that is, for rows but not columns, or for columns but not rows—and Wrap Mode is also enabled, size adjustment also occurs whenever the other dimension changes.
In this case, call the Update Cell Value method to force the control to update the cell display and apply the current automatic sizing modes.
Because Not Set restores the value inheritance, the Resizable property will never return a Not Set value unless the row or column has not been added to a Data Grid View control.