Anvisningar: Ta bort automatiskt genererade kolumner från en Windows Forms DataGridView-kontroll

När din DataGridView kontroll är inställd på att automatiskt generera dess kolumner baserat på data från dess datakälla kan du selektivt utelämna vissa kolumner. Du kan göra detta genom att anropa metoden Remove i Columns-samlingen. Du kan också dölja kolumner från vyn genom att ange egenskapen Visible till false. Den här tekniken är användbar när du vill visa dolda kolumner under vissa förhållanden, eller när du behöver komma åt data i kolumnerna utan att visa dem.

En annan metod är att förhindra att kolumner genereras automatiskt i första hand genom att ange ColumnMapping egenskapen för den underliggande DataColumn till Hidden. Detta instruerar DataGridView att hoppa över att skapa en kolumn för specifik datakolumn vid autogenerering.

Ta bort automatiskt genererade kolumner

  • Anropa metoden Remove i samlingen Columns.

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

Så här döljer du automatiskt genererade kolumner

  • Ange kolumnens egenskap Visible till false.

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

Förhindra att kolumner genereras automatiskt

  • Ange egenskapen ColumnMapping för DataColumn av datakällan till 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
    

Exempel

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

Kompilera koden

Det här exemplet kräver:

  • En DataGridView kontroll med namnet dataGridView1 bunden till en tabell som innehåller Fax och CustomerID kolumner, till exempel tabellen Customers i Northwind-exempeldatabasen.

  • Referenser till System och System.Windows.Forms sammansättningar.

Se även