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

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 supprimer ou masquer des colonnes par programmation dans le contrôle Windows Forms DataGrid à l’aide des propriétés et méthodes des objets et DataGridColumnStyle des GridColumnStylesCollection objets (qui sont membres de la DataGridTableStyle classe).

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. Ils ne sont plus visibles dans le datagrid.

Remarque

Si votre application n’accède pas à certaines colonnes de données et que vous ne souhaitez pas qu’elles s’affichent dans la grille de données, il n’est probablement pas nécessaire de les inclure dans la source de données en premier lieu.

Pour supprimer une colonne de DataGrid par programmation

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

  2. Définissez la propriété sur la DataGridTableStyle.MappingName table dans votre source de données à laquelle vous souhaitez appliquer le style. L’exemple suivant utilise la DataGrid.DataMember propriété, qui suppose qu’elle est déjà définie.

  3. Ajoutez le nouvel DataGridTableStyle objet à la collection de styles de table de datagrid.

  4. Appelez la RemoveAt méthode de la DataGridcollection 's GridColumnStyles , en spécifiant l’index de colonne 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 une colonne dans DataGrid par programmation

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

  2. Définissez la MappingName propriété de la table dans votre source de DataGridTableStyle données à laquelle vous souhaitez appliquer le style. L’exemple de code suivant utilise la DataGrid.DataMember propriété, qui suppose qu’elle est déjà définie.

  3. Ajoutez le nouvel DataGridTableStyle objet à la collection de styles de table de datagrid.

  4. Masquez la colonne en définissant sa Width propriété sur 0, en spécifiant l’index de colonne 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