Partilhar via


Como: Remover colunas geradas automaticamente de um controle DataGridView do Windows Forms

Quando o controle DataGridView é definido para gerar automaticamente suas colunas com base em dados de sua fonte de dados, você pode omitir seletivamente determinadas colunas. Você pode fazer isso chamando o método Remove na coleção Columns. Como alternativa, você pode ocultar colunas da exibição definindo a propriedade Visible como false. Essa técnica é útil quando você deseja exibir as colunas ocultas em determinadas condições ou quando precisa acessar os dados nas colunas sem exibi-los.

Outra abordagem é impedir que as colunas sejam geradas automaticamente em primeiro lugar, definindo a ColumnMapping propriedade do subjacente DataColumn como Hidden. Isso indica ao DataGridView para ignorar a criação de uma coluna para aquela coluna de dados particular durante a geração automática.

Para remover colunas geradas automaticamente

  • Invoque o método Remove na coleção Columns.

    dataGridView1.AutoGenerateColumns = true;
    dataGridView1.DataSource = customersDataSet;
    dataGridView1.Columns.Remove("Fax");
    
    With dataGridView1
        .AutoGenerateColumns = True
        .DataSource = customersDataSet
        .Columns.Remove("Fax")
    End With
    

Para ocultar colunas geradas automaticamente

  • Defina a propriedade Visible da coluna como false.

    dataGridView1.Columns["CustomerID"].Visible = false;
    
    dataGridView1.Columns("CustomerID").Visible = False
    

Para evitar que as colunas sejam geradas automaticamente

  • Defina a ColumnMapping propriedade da fonte DataColumn de dados como Hidden.

    // Assuming you have a DataTable with a column you want to exclude
    dataTable.Columns["SensitiveData"].ColumnMapping = MappingType.Hidden;
    
    ' Assuming you have a DataTable with a column you want to exclude
    dataTable.Columns("SensitiveData").ColumnMapping = MappingType.Hidden
    

Exemplo

private void BindDataAndInitializeColumns()
{
    dataGridView1.AutoGenerateColumns = true;
    dataGridView1.DataSource = customersDataSet;
    dataGridView1.Columns.Remove("Fax");
    dataGridView1.Columns["CustomerID"].Visible = false;
}
Private Sub BindDataAndInitializeColumns()

    With dataGridView1
        .AutoGenerateColumns = True
        .DataSource = customersDataSet
        .Columns.Remove("Fax")
        .Columns("CustomerID").Visible = False
    End With

End Sub

Compilando o código

Este exemplo requer:

  • Um controle DataGridView chamado dataGridView1 vinculado a uma tabela que contém colunas Fax e CustomerID, como a tabela Customers no banco de dados de exemplo Northwind.

  • Referências às assemblagens System e System.Windows.Forms.

Ver também