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

Tipp

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 im DataGrid-Steuerelement in Windows Forms Spalten programmgesteuert löschen oder ausblenden, indem Sie die Eigenschaften und Methoden des GridColumnStylesCollection-Objekts und des DataGridColumnStyle-Objekts (Member der DataGridTableStyle-Klasse) verwenden.

Die gelöschten oder ausgeblendeten Spalten sind in der Datenquelle, mit der das Raster verbunden ist, weiterhin vorhanden und können programmgesteuert aufgerufen werden. Die Spalten sind im Datenblatt lediglich nicht mehr sichtbar.

Tipp

Wenn die Anwendung nicht auf bestimmte Datenspalten zugreift und diese nicht im Datenblatt angezeigt werden sollen, ist es in der Regel nicht unbedingt erforderlich, sie in der Datenquelle an erster Stelle hinzuzufügen.

So löschen Sie programmgesteuert eine Spalte aus dem datengebundenen Steuerelement (DataGrid)

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

  2. Legen Sie für die DataGridTableStyle.MappingName-Eigenschaft die Tabelle in der Datenquelle fest, auf die Sie das Format anwenden möchten. Das folgende Beispiel verwendet die DataGrid.DataMember-Eigenschaft, wobei davon ausgegangen wird, dass diese bereits festgelegt wurde.

  3. Fügen Sie der Tabellenformatauflistung des Datenblatts das neue DataGridTableStyle-Objekt hinzu.

  4. Rufen Sie zum Festlegen des Spaltenindexes der zu löschenden Spalte die RemoveAt-Methode der GridColumnStyles-Auflistung von DataGrid auf.

    ' 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 programmgesteuert Spalten aus dem DataGrid aus

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

  2. Legen Sie für die MappingName-Eigenschaft von DataGridTableStyle die Tabelle in der Datenquelle fest, auf die Sie das Format anwenden möchten. Das folgende Codebeispiel verwendet die DataGrid.DataMember-Eigenschaft, wobei davon ausgegangen wird, dass diese bereits festgelegt wurde.

  3. Fügen Sie der Tabellenformatauflistung des Datenblatts das neue DataGridTableStyle-Objekt hinzu.

  4. Blenden Sie die Spalte aus, indem Sie für deren Width -Eigenschaft 0 festlegen. Geben Sie dabei den Spaltenindex der auszublendenden Spalte an.

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

Siehe auch

Aufgaben

Gewusst wie: Ändern der angezeigten Daten im DataGrid-Steuerelement in Windows Forms zur Laufzeit

Gewusst wie: Hinzufügen von Tabellen und Spalten zum DataGrid-Steuerelement in Windows Forms