Compartir a través de


Cómo: Eliminar u ocultar columnas del control DataGrid de formularios Windows Forms

Actualización: noviembre 2007

Nota:

Aunque el control DataGridView viene a reemplazar y a agregar funcionalidad al control DataGrid, éste se conserva a efectos de compatibilidad con versiones anteriores y uso futuro, según sea el caso. Para obtener más información, vea Diferencias entre los controles DataGridView y DataGrid de formularios Windows Forms.

Para eliminar u ocultar columnas del control DataGrid de los formularios Windows Forms mediante programación, puede utilizar los métodos y las propiedades de los objetos GridColumnStylesCollection y DataGridColumnStyle, que son miembros de la clase DataGridTableStyle.

Las columnas eliminadas u ocultas siguen existiendo en el origen de datos al que está enlazada la cuadrícula, y se puede obtener acceso a ellas mediante programación. No son visibles sólo en la cuadrícula de datos.

Nota:

Si la aplicación no obtiene acceso a determinadas columnas de datos y no desea mostrarlas en la cuadrícula de datos, probablemente no será necesario incluirlas en el origen de datos en primer lugar.

Para eliminar una columna del control DataGrid mediante programación

  1. En el área de declaraciones del formulario, declare una instancia nueva de la clase DataGridTableStyle.

  2. Establezca la propiedad DataGridTableStyle.MappingName en la tabla del origen de datos a la que desee aplicar el estilo. En el ejemplo siguiente se utiliza la propiedad DataGrid.DataMember y se da por supuesto que esta propiedad está ya definida.

  3. Agregue el nuevo objeto DataGridTableStyle a la colección de estilos de tabla de la cuadrícula de datos.

  4. Llame al método RemoveAt de la colección GridColumnStyles del control DataGrid y especifique el índice de la columna que desea eliminar.

    ' 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
    
    // 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);
    }
    

Para ocultar una columna en el control DataGrid mediante programación

  1. En el área de declaraciones del formulario, declare una instancia nueva de la clase DataGridTableStyle.

  2. Defina la propiedad MappingName de DataGridTableStyle con la tabla del origen de datos a la que desee aplicar el estilo. En el ejemplo siguiente se utiliza la propiedad DataGrid.DataMember y se da por supuesto que esta propiedad está ya definida.

  3. Agregue el nuevo objeto DataGridTableStyle a la colección de estilos de tabla de la cuadrícula de datos.

  4. Oculte la columna estableciendo la propiedad Width en 0, especificando el índice de columna de la columna que desea ocultar.

    ' 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
    
    // 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;
    }
    

Vea también

Tareas

Cómo: Cambiar los datos mostrados en tiempo de ejecución en el control DataGrid de formularios Windows Forms

Cómo: Agregar tablas y columnas al control DataGrid de Windows Forms