每按一次按钮添加行datagridview

我在usercontrol上有一个datagridview。 我创建了一个数据表,并将datagrid的源设置为此数据表。 我希望,在运行时,能够在每次按钮点击时添加gridview上我想要的行数。

我的代码:

  private DataTable CreateTable() { Datatable table=new Datatable(); table.Columns.Add("Name".ToString()); table.Columns.Add("Size".ToString()); DataRow dr = table.NewRow(); dr["Name"] = "Mike"; DataRow dr2 = table.NewRow(); dr2["Name"] = "Ryan; DataRow dr3 = table.NewRow(); dr3["Name"] = "Taylor"; dr["Size"] = " one"; dr2["Size"] = "two"; table.Rows.Add(dr); table.Rows.Add(dr2); table.Rows.Add(dr3); return table; //and on my constructor I set gridview.DataSource=Datatable; } //Code on the event: private void button_Click(object sender, EventArgs e) { DataRow NewRow = table.NewRow(); table.Rows.Add(NewRow); } 

您需要在表单级别定义DataTable 。 然后在按钮单击中,您可以执

 private void button_Click(object sender, EventArgs e) { DataRow NewRow = table.NewRow(); table.Rows.Add(NewRow); gridview.DataSource=table; //specify the source } 

用于在表单级别定义表:

 DataTable table; //DataTable at form level private DataTable CreateTable() { table=new Datatable(); //here insntianting the form level table. table.Columns.Add("Name".ToString()); table.Columns.Add("Size".ToString()); DataRow dr = table.NewRow(); dr["Name"] = "Mike"; DataRow dr2 = table.NewRow(); dr2["Name"] = "Ryan; DataRow dr3 = table.NewRow(); dr3["Name"] = "Taylor"; dr["Size"] = " one"; dr2["Size"] = "two"; table.Rows.Add(dr); table.Rows.Add(dr2); table.Rows.Add(dr3); return table; //and on my constructor I set gridview.DataSource=Datatable; } 

我建议采用以下方法以便更好地处理。

创建通用列表,每次单击都会使用新的数据集附加列表,然后将列表转换为DataTable,如下面的链接所示,然后将DataTable绑定到网格。

将通用List / Enumerable转换为DataTable?

如果您需要示例代码,请告诉我。