无法强制DataGridView生成列

时间:2019-06-22 23:39:19

标签: c# winforms

我正在动态创建datatable和datagridview,只是希望网格从该表生成列。

// create simple datatable
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
DataGridView dgv = new DataGridView() { AutoGenerateColumns = true };

// None of the below force datagridview to generate columns
dgv.DataSource = dt;
Debug.WriteLine($"Grid columns count: {dgv.Columns.Count}");
dgv.DataSource = new BindingSource(dt, null);
Debug.WriteLine($"Grid columns count: {dgv.Columns.Count}");

设置数据源后,数据网格视图中的列数仍为零。
我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您可以创建一个DataTable并为其提供一些列,然后将此数据表添加为datagridview列

DataTable dt = new DataTable();  

一旦声明它会构建如下函数:

void createDataTable()
{
    dt.Columns.Add("column1");
    dt.Columns.Add("column2");
    yourdatagridview.DataSource = dt;
}  

最后一次调用表单构造函数中的函数:

createDataTable();