我的c#程序有点问题。 我有2个DataGridViews(第一个是从我的localhost数据库加载的记录)。当我单击A按钮时,第一个DataGridView中的选定记录将转到第二个DGV并从第一个删除。当我单击B按钮时,所选记录应该返回到第一个DGV,应该从第二个删除,但是VS大叫不能以编程方式将行添加到DGV。
这是我的代码:
//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。干杯
答案 0 :(得分:0)
网格绑定到DataSource
,因此不会让您以这种方式添加数据。在代码的第一行中使用绑定DataSource.AddNew()
方法添加行,用于&#39; for&#39;环。然后参考DataGridView
的当前行。当前行将是绑定数据源控件添加的行。这样您就可以修改行中每个单元格的数据。