Sdílet prostřednictvím


Postupy: Odebrání automaticky vygenerovaných sloupců z ovládacího prvku Windows Forms DataGridView

Pokud je ovládací DataGridView prvek nastavený tak, aby automaticky vygenerovala sloupce na základě dat ze zdroje dat, můžete určité sloupce selektivně vynechat. Můžete to provést voláním Remove metody v kolekci Columns . Případně můžete skrýt sloupce před zobrazením nastavením Visible vlastnosti na falsehodnotu. Tato technika je užitečná, když chcete zobrazit skryté sloupce v určitých podmínkách nebo když potřebujete získat přístup k datům ve sloupcích bez jejich zobrazení.

Dalším přístupem je zabránit automatickému vygenerování sloupců na prvním místě nastavením ColumnMapping vlastnosti podkladového objektu DataColumn na Hidden. Tím se DataGridView řekne, že se má přeskočit vytvoření sloupce pro daný sloupec dat během automatického generování.

Odebrání automaticky vygenerovaných sloupců

  • Volejte metodu Remove v kolekci Columns .

    dataGridView1.AutoGenerateColumns = true;
    dataGridView1.DataSource = customersDataSet;
    dataGridView1.Columns.Remove("Fax");
    
    With dataGridView1
        .AutoGenerateColumns = True
        .DataSource = customersDataSet
        .Columns.Remove("Fax")
    End With
    

Skrytí automaticky vygenerovaných sloupců

  • Nastavte vlastnost sloupce Visible na hodnotu false.

    dataGridView1.Columns["CustomerID"].Visible = false;
    
    dataGridView1.Columns("CustomerID").Visible = False
    

Zabránění automatickému vygenerování sloupců

  • Nastavte v datovém zdroji DataColumn vlastnost ColumnMapping na hodnotu Hidden.

    // Assuming you have a DataTable with a column you want to exclude
    dataTable.Columns["SensitiveData"].ColumnMapping = MappingType.Hidden;
    
    ' Assuming you have a DataTable with a column you want to exclude
    dataTable.Columns("SensitiveData").ColumnMapping = MappingType.Hidden
    

Příklad

private void BindDataAndInitializeColumns()
{
    dataGridView1.AutoGenerateColumns = true;
    dataGridView1.DataSource = customersDataSet;
    dataGridView1.Columns.Remove("Fax");
    dataGridView1.Columns["CustomerID"].Visible = false;
}
Private Sub BindDataAndInitializeColumns()

    With dataGridView1
        .AutoGenerateColumns = True
        .DataSource = customersDataSet
        .Columns.Remove("Fax")
        .Columns("CustomerID").Visible = False
    End With

End Sub

Kompilace kódu

Tento příklad vyžaduje:

  • Ovládací prvek DataGridView pojmenovaný dataGridView1 vázaný na tabulku, která obsahuje Fax a CustomerID sloupce, jako je tabulka Customers v ukázkové databázi Northwind.

  • Odkazy na sestavy System a System.Windows.Forms.

Viz také