C# 如何将Form1的dataGridView1数据复制到Form2的dataGridView1

C# 如何将Form1的dataGridView1数据复制到Form2的dataGridView1,c#,C#,我想将数据从form1的datagridview1复制到form2的datagridview1 我正在努力: private void button2_Click(object sender, EventArgs e) { ((form2)f).dataGridView1.Rows.Add(comboBox1.Text, comboBox2.Text, comboBox3.Text, textBox1

我想将数据从form1的datagridview1复制到form2的datagridview1

我正在努力:

private void button2_Click(object sender, EventArgs e)
            {
                ((form2)f).dataGridView1.Rows.Add(comboBox1.Text, comboBox2.Text,
                    comboBox3.Text, textBox1.Text);
            }

它显示错误“对象引用未设置为对象的实例”。

我不确定您的错误在哪里,但我不会尝试像您这样访问其他窗体控件。我要做的是在第二个表单上创建一个公共方法,并使用它来更新表单上的DataGridView

这是一个有效的例子

表格1

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

有许多对象可能导致引用错误。我最好的猜测是变量
f
,您能说明您在何处以及如何创建它吗?公共部分类form1:Form{System.Windows.Forms.Form f=System.Windows.Forms.Application.OpenForms[“form2”];public Order()明白了吗,先生?还是没有?你需要提供更多的细节,和一个最小的测试用例,这样我们才能理解发生了什么。从我们这方面来说很难猜测。