Export (0) Print
Expand All

Deleting Columns in the Windows Forms DataGrid Control

Visual Studio .NET 2003

You can programmatically delete or hide columns in the Windows Forms DataGrid control by using the properties and methods of the GridColumnStylesCollection and DataGridColumnStyle objects (which are members of the DataGridTableStyle class).

The deleted or hidden columns still exist in the data source the grid is bound to, and can still be accessed programmatically. They are just no longer visible in the datagrid.

Note   If your application does not access certain columns of data, and you do not want them displayed in the datagrid, then it is probably not necessary to include them in the data source in the first place.

To delete a column from the DataGrid programmatically

  1. In the declarations area of your form, declare a new instance of the DataGridTableStyle class.
  2. Set the DataGridTableStyle.MappingName property to the table in your data source that you want to apply the style to. The following example uses the DataGrid.DataMember property, which it assumes is already set.
  3. Add the new DataGridTableStyle object to the datagrid's table styles collection.
  4. Call the RemoveAt method of the DataGrid's GridColumnStyles collection, specifying the column index of the column to delete.
    ' Visual Basic
    ' Declare a new DataGridTableStyle in the
    ' declarations area of your form.
    Dim ts As DataGridTableStyle = New DataGridTableStyle()
    
    Sub DeleteColumn()
       ' Set the DataGridTableStyle.MappingName property
       ' to the table in the data source to map to.
       ts.MappingName = DataGrid1.DataMember
    
       ' Add it to the datagrid's TableStyles collection
       DataGrid1.TableStyles.Add(ts)
    
       ' Delete the first column (index 0)
       DataGrid1.TableStyles(0).GridColumnStyles.RemoveAt(0)
    End Sub
    
    // C#
    // Declare a new DataGridTableStyle in the
    // declarations area of your form.
    DataGridTableStyle ts = new DataGridTableStyle();
    
    private void deleteColumn()
    {
       // Set the DataGridTableStyle.MappingName property
       // to the table in the data source to map to.
       ts.MappingName = dataGrid1.DataMember;
    
       // Add it to the datagrid's TableStyles collection
       dataGrid1.TableStyles.Add(ts);
    
       // Delete the first column (index 0)
       dataGrid1.TableStyles[0].GridColumnStyles.RemoveAt(0);
    }
    

To hide a column in the DataGrid programmatically

  1. In the declarations area of your form, declare a new instance of the DataGridTableStyle class.
  2. Set the MappingName property of the DataGridTableStyle to the table in your data source that you want to apply the style to. The following code example uses the DataGrid.DataMember property, which it assumes is already set.
  3. Add the new DataGridTableStyle object to the datagrid's table styles collection.
  4. Hide the column by setting its Width property to 0, specifying the column index of the column to hide.
    ' Visual Basic
    ' Declare a new DataGridTableStyle in the
    ' declarations area of your form.
    Dim ts As DataGridTableStyle = New DataGridTableStyle()
    
    Sub HideColumn()
       ' Set the DataGridTableStyle.MappingName property
       ' to the table in the data source to map to.
       ts.MappingName = DataGrid1.DataMember
    
       ' Add it to the datagrid's TableStyles collection
       DataGrid1.TableStyles.Add(ts)
    
       ' Hide the first column (index 0)
       DataGrid1.TableStyles(0).GridColumnStyles(0).Width = 0
    End Sub
    
    // C#
    // Declare a new DataGridTableStyle in the
    // declarations area of your form.
    DataGridTableStyle ts = new DataGridTableStyle();
    
    private void hideColumn()
    {
       // Set the DataGridTableStyle.MappingName property
       // to the table in the data source to map to.
       ts.MappingName = dataGrid1.DataMember;
    
       // Add it to the datagrid's TableStyles collection
       dataGrid1.TableStyles.Add(ts);
    
       // Hide the first column (index 0)
       dataGrid1.TableStyles[0].GridColumnStyles[0].Width = 0;
    }
    

See Also

Changing Displayed Data at Run Time in the Windows Forms DataGrid Control | Adding Tables and Columns to the Windows Forms DataGrid Control

Show:
© 2014 Microsoft