我想将form1的datagridview中的数据复制到form2的datagridview1,如下所示:
private void button2_Click(object sender, EventArgs e)
{
((form2)f).dataGridView1.Rows.Add(comboBox1.Text, comboBox2.Text,
comboBox3.Text, textBox1.Text);
}
我使用了这段代码:
dataGridView1.Rows.Add(comboBox1.Text, comboBox2.Text,
comboBox3.Text, textBox1.Text);
将数据插入到我的form1的datagridview1中。它插入到dgv数据中,但当我使用此代码将数据插入到表格的datagridview1中时,通过在form2上使用button2,数据未被插入并显示错误“对象引用未设置为对象的实例”。
请告诉我如何从一个DataGridView复制到另一个,或者如果上面的代码不正确,请告诉我。
答案 0 :(得分:0)
我不确定您的错误在哪里,但我不会尝试访问您正在执行的其他表单控件。我要做的是在第二个窗体上创建一个公共方法,并使用它来更新其窗体上的DataGridView。
这是一个有效的例子。
<强> Form1中强>
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 f = new Form2();
f.Show();
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Add(comboBox1.Text, comboBox2.Text, comboBox3.Text, textBox1.Text);
}
private void button2_Click(object sender, EventArgs e)
{
Form f = Application.OpenForms["Form2"];
if (f != null) //Make sure we have a form object
{
((Form2)f).SetDataGrid(new string[]{comboBox1.Text, comboBox2.Text, comboBox3.Text, textBox1.Text});
}
}
}
<强>窗体2 强>
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public void SetDataGrid( string[] data)
{
dataGridView1.Rows.Add(data);
}
}