Condividi tramite


Procedura: eliminare o nascondere colonne nel controllo DataGrid Windows Form

Nota

Benché il controllo DataGridView sostituisca il controllo DataGrid aggiungendovi funzionalità, il controllo DataGrid viene mantenuto per compatibilità con le versioni precedenti e per un eventuale utilizzo futuro. Per ulteriori informazioni vedere Differenze tra i controlli DataGridView e DataGrid di Windows Form.

È possibile eliminare o nascondere le colonne nel controllo DataGrid Windows Forms a livello di codice utilizzando le proprietà e i metodi degli oggetti GridColumnStylesCollection e DataGridColumnStyle, membri della classe DataGridTableStyle.

Le colonne eliminate o nascoste sono ancora presenti nell'origine dati alla quale è associata la griglia ed è ancora possibile accedervi a livello di codice. Non sono tuttavia più visibili nel controllo DataGrid.

Nota

Se l'applicazione non consente di accedere ad alcune colonne di dati e non si desidera visualizzarle nel controllo DataGrid, potrebbe non essere necessario includerle nella parte iniziale dell'origine dati.

Per eliminare una colonna da DataGrid a livello di codice

  1. Nella sezione Dichiarazioni del form dichiarare una nuova istanza della classe DataGridTableStyle.

  2. Impostare la proprietà DataGridTableStyle.MappingName sulla tabella dell'origine dati alla quale applicare lo stile. Nell'esempio seguente viene utilizzata la proprietà DataGrid.DataMember e si presuppone sia già impostata.

  3. Aggiungere il nuovo oggetto DataGridTableStyle all'insieme degli stili di tabella della griglia.

  4. Chiamare il metodo RemoveAt dell'insieme GridColumnStyles di DataGrid specificando l'indice della colonna da eliminare.

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

Per nascondere una colonna in DataGrid a livello di codice

  1. Nella sezione Dichiarazioni del form dichiarare una nuova istanza della classe DataGridTableStyle.

  2. Impostare la proprietà MappingName del controllo DataGridTableStyle sulla tabella dell'origine dati alla quale applicare lo stile. Nell'esempio di codice seguente viene utilizzata la proprietà DataGrid.DataMember e si presuppone sia già impostata.

  3. Aggiungere il nuovo oggetto DataGridTableStyle all'insieme degli stili di tabella della griglia.

  4. Per nascondere la colonna, impostarne su 0 la proprietà Width , specificando l'indice della colonna da nascondere.

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

Vedere anche

Attività

Procedura: modificare i dati visualizzati in fase di esecuzione nel controllo DataGrid Windows Form

Procedura: aggiungere tabelle e colonne al controllo DataGrid Windows Form