Condividi tramite


Procedura: Rimuovere colonne generate automaticamente da un controllo DataGridView di Windows Form

Quando il controllo DataGridView è impostato per generare automaticamente le colonne in base ai dati dell'origine dati, è possibile omettere in modo selettivo determinate colonne. Puoi farlo chiamando il metodo Remove sulla raccolta Columns. In alternativa, è possibile nascondere le colonne dalla visualizzazione impostando la proprietà Visible su false. Questa tecnica è utile quando si desidera visualizzare le colonne nascoste in determinate condizioni o quando è necessario accedere ai dati nelle colonne senza visualizzarla.

Un altro approccio consiste nel impedire che le colonne vengano generate automaticamente impostando la ColumnMapping proprietà dell'oggetto sottostante DataColumn su Hidden. Questo indica di ignorare la creazione di una colonna per quella specifica colonna di dati durante la generazione automatica.

Per rimuovere le colonne generate automaticamente

  • Chiamare il metodo Remove nell'insieme Columns.

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

Per nascondere le colonne generate automaticamente

  • Impostare la proprietà Visible della colonna su false.

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

Per impedire la generazione automatica delle colonne

  • Impostare la proprietà ColumnMapping dell'origine dati DataColumn su 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
    

Esempio

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

Compilazione del codice

Questo esempio richiede:

  • Controllo DataGridView denominato dataGridView1 associato a una tabella contenente le colonne Fax e CustomerID, come la tabella Customers nel database di esempio Northwind.

  • Riferimenti agli assembly System e System.Windows.Forms.

Vedere anche