Comment : supprimer ou masquer des colonnes dans le contrôle DataGrid Windows Forms

Mise à jour : novembre 2007

Remarque :

Le contrôle DataGridView remplace le contrôle DataGrid et lui ajoute des fonctionnalités ; toutefois, le contrôle DataGrid est conservé pour la compatibilité descendante et l'utilisation future si tel est votre choix. Pour plus d'informations, consultez Différences entre les contrôles DataGridView et DataGrid Windows Forms.

Vous pouvez masquer ou supprimer par programme des colonnes d'un contrôle DataGrid Windows Forms au moyen des propriétés et méthodes des objets GridColumnStylesCollection et DataGridColumnStyle (lesquels sont membres de la classe DataGridTableStyle).

Les colonnes supprimées ou masquées existent toujours dans la source de données à laquelle la grille est liée et sont toujours accessibles par programme. Simplement, elles ne sont plus visibles dans la grille de données.

Remarque :

Si votre application n'accède pas à certaines colonnes de données et que vous ne souhaitez pas les afficher dans la grille de données, il n'est probablement pas nécessaire de les inclure dans la source de données à la première place.

Pour supprimer par programme une colonne du contrôle DataGrid

  1. Dans la zone de déclarations de votre formulaire, déclarez une nouvelle instance de la classe DataGridTableStyle.

  2. Définissez la propriété DataGridTableStyle.MappingName sur la table à laquelle vous souhaitez appliquer le style dans votre source de données. L'exemple suivant utilise la propriété DataGrid.DataMember, qu'il considère comme déjà définie.

  3. Ajoutez le nouvel objet DataGridTableStyle à la collection des styles de table de la grille de données.

  4. Appelez la méthode RemoveAt de la collection GridColumnStyles du contrôle DataGrid en spécifiant l'index de la colonne à supprimer.

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

Pour masquer par programme une colonne du contrôle DataGrid

  1. Dans la zone de déclarations de votre formulaire, déclarez une nouvelle instance de la classe DataGridTableStyle.

  2. Définissez la propriété MappingName de l'objet DataGridTableStyle sur la table à laquelle vous souhaitez appliquer le style dans votre source de données. Le code suivant utilise la propriété DataGrid.DataMember, qu'il considère comme déjà définie.

  3. Ajoutez le nouvel objet DataGridTableStyle à la collection des styles de table de la grille de données.

  4. Masquez la colonne en affectant la valeur 0 à sa propriété Width et en précisant l'index de la colonne à masquer.

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

Voir aussi

Tâches

Comment : modifier des données affichées dans le contrôle DataGrid Windows Forms au moment de l'exécution

Comment  : ajouter des tables et des colonnes au contrôle DataGrid Windows Forms