Procedimiento para eliminar u ocultar columnas del control DataGrid de formularios Windows Forms

Nota

El control DataGridView reemplaza y agrega funcionalidad al control DataGrid; sin embargo, el control DataGrid se conserva a efectos de compatibilidad con versiones anteriores y uso futuro, en su caso. Para obtener más información, consulte Diferencias entre los controles DataGridView y DataGrid de formularios Windows Forms.

Puede eliminar u ocultar columnas mediante programación en el control DataGrid de Windows Forms mediante las propiedades y los métodos 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 seguir accediendo a ellas mediante programación. Simplemente, dejan de estar visibles en la cuadrícula de datos.

Nota

Si la aplicación no tiene acceso a determinadas columnas de datos y no quiere que se muestren en la cuadrícula de datos, probablemente no sea necesario incluirlas en el origen de datos en realidad.

Para eliminar una columna de DataGrid mediante programación

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

  2. Establezca la propiedad DataGridTableStyle.MappingName en la tabla del origen de datos a la que desea aplicar el estilo. En el ejemplo siguiente se usa la propiedad DataGrid.DataMember, que se supone ya está establecida en ese valor.

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

  4. Llame al método RemoveAt de la colección GridColumnStyles de DataGrid, especificando el índice de columna de la columna que se va a 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 DataGrid mediante programación

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

  2. Establezca la propiedad MappingName de DataGridTableStyle en la tabla del origen de datos a la que desea aplicar el estilo. En el ejemplo de código siguiente se usa la propiedad DataGrid.DataMember, que se supone ya está establecida en ese valor.

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

  4. Para ocultar la columna, establezca su propiedad Width en 0, especificando el índice de columna de la columna que se va a 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;  
    }  
    

Consulte también