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 uso futuro. Per altre informazioni, vedere Differenze tra i controlli DataGridView e DataGrid Windows Form.

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

Le colonne eliminate o nascoste sono ancora presenti nell'origine dati a cui è associata la griglia e possono comunque essere accessibili a livello di codice. Non sono più visibili nella griglia dati.

Nota

Se l'applicazione non accede a determinate colonne di dati e non le si desidera visualizzare nel datagrid, probabilmente non è necessario includerle nell'origine dati al primo posto.

Per eliminare una colonna da DataGrid a livello di codice

  1. Nell'area delle dichiarazioni del modulo dichiarare una nuova istanza della DataGridTableStyle classe .

  2. Impostare la DataGridTableStyle.MappingName proprietà sulla tabella nell'origine dati a cui applicare lo stile. Nell'esempio seguente viene utilizzata la DataGrid.DataMember proprietà , che presuppone che sia già impostata.

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

  4. Chiamare il RemoveAt metodo della DataGridraccolta di GridColumnStyles , specificando l'indice di colonna 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. Nell'area delle dichiarazioni del modulo dichiarare una nuova istanza della DataGridTableStyle classe .

  2. Impostare la MappingName proprietà dell'oggetto DataGridTableStyle sulla tabella nell'origine dati a cui applicare lo stile. Nell'esempio di codice seguente viene utilizzata la DataGrid.DataMember proprietà , che presuppone che sia già impostata.

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

  4. Nascondere la colonna impostando la relativa Width proprietà su 0, specificando l'indice di colonna 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;  
    }  
    

Vedi anche