如果 DataGridView 控件设置为根据数据源中的数据自动生成其列,则可以有选择地省略某些列。 可以通过对 Remove 集合调用 Columns 方法来执行此操作。 或者,可以通过将 Visible 属性设置为 false来隐藏视图中的列。 如果想要在特定条件下显示隐藏列,或者需要访问列中的数据而不显示隐藏列,则此方法非常有用。
通过将底层DataColumn的ColumnMapping属性设置为Hidden,可以防止列从一开始就自动生成。 这会告知 DataGridView 在自动生成期间跳过为该特定数据列创建列。
删除自动生成的列
-
dataGridView1.AutoGenerateColumns = true; dataGridView1.DataSource = customersDataSet; dataGridView1.Columns.Remove("Fax");With dataGridView1 .AutoGenerateColumns = True .DataSource = customersDataSet .Columns.Remove("Fax") End With
隐藏自动生成的列
将列的 Visible 属性设置为
false。dataGridView1.Columns["CustomerID"].Visible = false;dataGridView1.Columns("CustomerID").Visible = False
防止自动生成列
将 ColumnMapping 数据源 DataColumn 的属性设置为 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
示例:
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
编译代码
此示例需要:
名为
dataGridView1的 DataGridView 控件绑定到包含Fax和CustomerID列的表,例如 Northwind 示例数据库中的Customers表。对 System 和 System.Windows.Forms 程序集的引用。