2013-03-12 62 views
0

如何每次點擊時顯示一個新行?因爲它所做的是替換第一行的值而不是添加新行。每個按鈕在數據網格視圖中單擊新行

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

回答

1

因爲每次點擊你初始化一個新的數據表。 把你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

相關問題