Freigeben über


Vorgehensweise: Löschen oder Ausblenden von Spalten aus dem DataGrid-Steuerelement in Windows Forms

Hinweis

Obwohl das DataGridView-Steuerelement das DataGrid-Steuerelement ersetzt und funktionell erweitert, wird das DataGrid-Steuerelement sowohl aus Gründen der Abwärtskompatibilität als auch, falls gewünscht, für die zukünftige Verwendung beibehalten. Weitere Informationen finden Sie unter Unterschiede zwischen dem DataGridView-Steuerelement und dem DataGrid-Steuerelement in Windows Forms.

Sie können Spalten im DataGrid-Steuerelement von Windows Forms programmgesteuert löschen oder ausblenden, indem Sie die Eigenschaften und Methoden der Objekte GridColumnStylesCollection und DataGridColumnStyle (die Member der DataGridTableStyle-Klasse sind) verwenden.

Die gelöschten oder ausgeblendeten Spalten sind in der Datenquelle, an die das Raster gebunden ist, noch vorhanden und können weiterhin programmgesteuert aufgerufen werden. Sie sind nur nicht mehr im Datenraster sichtbar.

Hinweis

Wenn Ihre Anwendung nicht auf bestimmte Datenspalten zugreift und Sie nicht möchten, dass diese im Datenraster angezeigt werden, dann ist es wahrscheinlich nicht notwendig, diese überhaupt in die Datenquelle aufzunehmen.

So löschen Sie eine Spalte programmgesteuert aus dem DataGrid-Steuerelement

  1. Deklarieren Sie im Deklarationsbereich Ihres Formulars eine neue Instanz der DataGridTableStyle-Klasse.

  2. Legen Sie die DataGridTableStyle.MappingName-Eigenschaft auf die Tabelle in Ihrer Datenquelle fest, auf die Sie den Stil anwenden möchten. Im folgenden Beispiel wird die DataGrid.DataMember-Eigenschaft verwendet, von der angenommen wird, dass sie bereits festgelegt ist.

  3. Fügen Sie das neue DataGridTableStyle-Objekt zur Sammlung der Tabellenstile des Datenrasters hinzu.

  4. Rufen Sie die RemoveAt-Methode der GridColumnStyles-Sammlung der DataGrid-Instanz auf, und geben Sie den Spaltenindex der zu löschenden Spalte an.

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

So blenden Sie eine Spalte im DataGrid-Steuerelement programmgesteuert aus

  1. Deklarieren Sie im Deklarationsbereich Ihres Formulars eine neue Instanz der DataGridTableStyle-Klasse.

  2. Legen Sie die MappingName-Eigenschaft der DataGridTableStyle-Instanz auf die Tabelle in Ihrer Datenquelle fest, auf die Sie den Stil anwenden möchten. Im folgenden Code wird die DataGrid.DataMember-Eigenschaft verwendet, von der angenommen wird, dass sie bereits festgelegt ist.

  3. Fügen Sie das neue DataGridTableStyle-Objekt zur Sammlung der Tabellenstile des Datenrasters hinzu.

  4. Blenden Sie die Spalte aus, indem Sie ihre Width-Eigenschaft auf 0 festlegen und den Spaltenindex der auszublendenden Spalte angeben.

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

Weitere Informationen