我尝试使用此代码将所选行从datagridview2移动到datagridview1.But当我单击添加按钮以从datagridview2移动所选行时。并且它还添加到datagridview 2.但是通过异常发生错误,即“对象引用未设置为对象的实例”。如何解决此问题。我的代码如下
private void button1_Click(object sender, EventArgs e)
{
try
{
this.dataGridView1.Rows.Clear();
foreach (DataGridViewRow row in dataGridView2.Rows)
{
int n = dataGridView1.Rows.Add();
bool checkedCell = (bool)dataGridView2.Rows[n].Cells[0].Value;
if (checkedCell == true)
{
dataGridView1.Rows[n].Cells[0].Value = row.Cells[1].Value;
dataGridView1.Rows[n].Cells[1].Value = row.Cells[2].Value;
dataGridView1.Rows[n].Cells[3].Value = row.Cells[3].Value;
}
}
}
catch (Exception ex)
{
MessageBox.Show(" Error " + ex.Message);
}
}
答案 0 :(得分:0)
在datagridview2中添加行时,必须将boolean column的值设置为:
dataGridView2.Rows.Add("1", "2", "3", false);
其他解决办法:
this.dataGridView1.Rows.Clear();
foreach (DataGridViewRow row in dataGridView2.SelectedRows.Cast<DataGridViewRow>().ToList())
{
this.dataGridView1.Rows.Add(row.Cells[0].Value, row.Cells[1].Value, row.Cells[2].Value);
}