每个按钮在数据网格视图中单击新行

每个按钮在数据网格视图中单击新行

问题描述:

如何每次点击时显示一个新行?因为它所做的是替换第一行的值而不是添加新行。每个按钮在数据网格视图中单击新行

private void button2_Click(object sender, EventArgs e) 
{ 
     DataTable dtbl = new DataTable(); 
     dtbl.Columns.Add("1st Header"); 
     dtbl.Columns.Add("2nd Header"); 
     dtbl.Columns.Add("3rd Header"); 

     dtbl.Rows.Add("1","2","3");     

     dgv.DataSource = dtbl; 
} 
+0

如果您已经有数据表,为什么不直接使用.Rows.Add而不是重新设置数据源? – ryadavilli 2013-03-12 07:13:12

+0

当控件是数据绑定的时候,无法以编程方式将行添加到datagridview的行集合 – user1954418 2013-03-12 07:19:15

因为每次点击你初始化一个新的数据表。 把你DataTable初始化和数据源分配到另一个功能,使您的DataTable私有,这样就可以在点击按钮使用它 - 现在

DataTable dtbl; 
    private void InitializeDataTable() 
    { 
     dtbl = new DataTable(); 
     dtbl.Columns.Add("1st Header"); 
     dtbl.Columns.Add("2nd Header"); 
     dtbl.Columns.Add("3rd Header"); 

     dgv.DataSource = dtbl; 
    } 

,在按一下按钮,添加使用新行DataTable.NewRow -

private void button2_Click(object sender, EventArgs e) 
    { 
     DataRow newRow = dtbl.NewRow(); 
     dtbl.Rows.Add(newRow); 

     dgv.Refresh(); 
    } 
+0

当控件是数据绑定时,无法以编程方式将行添加到datagridview的行集合 – user1954418 2013-03-12 07:17:17

+0

对不起,请参阅我的编辑... – 2013-03-12 07:22:33

+0

错误:你调用的对象是空的。 – user1954418 2013-03-12 07:28:31