Partager via


Guide pratique pour supprimer les colonnes générées automatiquement d’un contrôle DataGridView Windows Forms

Lorsque votre contrôle DataGridView est défini pour générer automatiquement ses colonnes en fonction des données de sa source de données, vous pouvez omettre de manière sélective certaines colonnes. Pour ce faire, appelez la méthode Remove sur la collection Columns. Vous pouvez également masquer les colonnes de l’affichage en définissant la propriété Visible sur false. Cette technique est utile lorsque vous souhaitez afficher les colonnes masquées dans certaines conditions, ou lorsque vous devez accéder aux données dans les colonnes sans l’afficher.

Une autre approche consiste à empêcher la génération automatique des colonnes en définissant la propriété ColumnMapping de l’élément DataColumn sous-jacent sur Hidden. Cela indique au DataGridView de sauter la création d'une colonne pour cette colonne de données précise lors de la génération automatique.

Pour supprimer les colonnes générées automatiquement

  • Appelez la méthode Remove sur la collection Columns.

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

Pour masquer les colonnes générées automatiquement

  • Définissez la propriété Visible de la colonne sur false.

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

Pour empêcher la création automatique de colonnes

  • Définissez la propriété ColumnMapping de la DataColumn source de données à 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
    

Exemple :

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

Compilation du code

Cet exemple nécessite :

  • Contrôle DataGridView nommé dataGridView1 lié à une table qui contient des colonnes Fax et CustomerID, telles que la table Customers dans l’exemple de base de données Northwind.

  • Références aux assemblages System et System.Windows.Forms.

Voir aussi