如何将form1的datagridview1数据复制到form2的datagridview1

时间:2014-02-27 21:46:24

标签: c#

我想将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复制到另一个,或者如果上面的代码不正确,请告诉我。

1 个答案:

答案 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);
    }
}