0
我的c#程序有一點點問題。 我有2個DataGridViews(1日有從我的本地主機數據庫加載的記錄)。當我點擊A按鈕時,從第一個DataGridView選擇的記錄進入第二個DGV並從第一個刪除。當我點擊B按鈕時,選定的記錄應該回到第1個DGV,並且應該從第2個刪除,但是VS大聲說行不能以編程方式添加到DGV。行無法以編程方式添加到DataGridView的行集合
這裏是我的代碼:
//copy rows
public void Kopiuj()
{
foreach (DataGridViewRow row in this.dataGridView1.SelectedRows)
{
object[] rowData = new object[row.Cells.Count];
for (int i = 0; i < rowData.Length; ++i)
{
rowData[i] = row.Cells[i].Value;
}
this.dataGridView2.Rows.Add(rowData);
}
}
//delete rows
public void Usun()
{
foreach (DataGridViewRow selRow in dataGridView1.SelectedRows.OfType<DataGridViewRow>().ToArray())
{
dataGridView1.Rows.Remove(selRow);
}
}
//adding collumns cause it's neccesary
public void DodajKolumny()
{
while (dataGridView2.Columns.Count < dataGridView1.Columns.Count)
{
foreach (DataGridViewColumn c in dataGridView1.Columns)
{
dataGridView2.Columns.Add(c.Clone() as DataGridViewColumn);
}
}
}
喏,這就是方法的代碼,該代碼犯規復制選定從DGV2行DGV1:
public void KopiujW()
{
foreach (DataGridViewRow row in this.dataGridView2.SelectedRows)
{
object[] rowData = new object[row.Cells.Count];
for (int i = 0; i < rowData.Length; ++i)
{
rowData[i] = row.Cells[i].Value;
dataGridView1.Rows.Add(rowData);
}
dataGridView1.Rows.Add(rowData);
}
}
如果你們能善待告訴我在這段代碼中出了什麼問題。 Thx爲每個答案。歡呼聲
從第二個網格刪除時,您可能需要的是將這些項目添加到數據源,以便第一個網格得到更新。 – terrybozzio
更好的方法是從綁定到gridview的數據源集合中添加/刪除所需的行,而不是直接將行添加到gridview。當您完成操作數據源時,請使用'dataGridView1.DataBind()或dataGridView2.DataBind()'將數據綁定回去。 –