Use the IsVisible property to show or hide columns in the grid. To get the list of columns the grid currently displays, use the DataGridView.VisibleColumns property.
If you group data by a column (set its GridColumn.IsGrouped property to true), the grid does not display this column as a regular one but shows its header and values in group rows. In this case, the IsVisible property remains set to true, however, the column is not included in the DataGridView.VisibleColumns collection. You can use the DataGridView.ShowGroupedColumns property to show a column used to group grid data like a regular one.