Sco*_*ion 3 c# datagridview winforms
我是来自 DataTable 的人口 DataGridView,但收到以下错误:
DataGridView 控件的至少一列没有单元格模板
private void PopulateGridView(DataTable dt)
{
if (dt != null)
{
dataGridView1.Columns.Clear();
dataGridView1.DataSource = null;
foreach (DataColumn col in dt.Columns)
{
//Declare the bound field and allocate memory for the bound field.
DataGridViewColumn datacolumn = new DataGridViewColumn();
//Initalize the DataField value.
datacolumn.DataPropertyName = col.ColumnName;
datacolumn.Name = col.ColumnName;
//Initialize the HeaderText field value.
datacolumn.HeaderText = col.ColumnName;
//Add the newly created bound field to the GridView.
this.dataGridView1.Columns.Add(datacolumn); // ** Error **
}
//Initialize the DataSource
this.dataGridView1.DataSource = dt;
}
Run Code Online (Sandbox Code Playgroud)
您看到的错误是因为您正在添加DataGridViewColumn未分配单元格模板的基本列类型。如果 DataGridView 尝试为该列分配一个新单元格,它将不知道该怎么做。
您可以选择定义列类型,也可以将列的单元格模板设置为单元格。
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
datagridview1.Columns.Add(col);
Run Code Online (Sandbox Code Playgroud)
或者
DataGridViewColumn col= new DataGridViewColumn();
DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell();
col.CellTemplate = cell;
datagridview1.Columns.Add(col);
Run Code Online (Sandbox Code Playgroud)
有几种可用的列类型。
但是,您可能想要做的是让列自动生成。将 DataGridView 属性 AutoGenerate columns 设置为true(默认值),在分配数据源时创建列。
以编程方式添加列通常很有用(例如添加复选框列以允许行选择),但在这种情况下,您不需要这样做。
| 归档时间: |
|
| 查看次数: |
1830 次 |
| 最近记录: |