Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将DataGridView从一个窗体复制到另一个窗体_C#_Datagridview - Fatal编程技术网

C# 将DataGridView从一个窗体复制到另一个窗体

C# 将DataGridView从一个窗体复制到另一个窗体,c#,datagridview,C#,Datagridview,我正在为超市购物制作一个表单,添加到购物车中的每个项目都以相同的形式显示在datagridview中,一旦完成购物,就会打开一个新表单,我希望在其中显示第一个表单中的datagridview。 我看到了一些解决方案,并在第一个表单中尝试了下一个代码: this.Hide(); Form frm35 = new Form35(dataGridView1.DataSource); frm35.ShowDialog(); this.Close(); 在第二种情况下: public partial

我正在为超市购物制作一个表单,添加到购物车中的每个项目都以相同的形式显示在datagridview中,一旦完成购物,就会打开一个新表单,我希望在其中显示第一个表单中的datagridview。 我看到了一些解决方案,并在第一个表单中尝试了下一个代码:

this.Hide();
Form frm35 = new Form35(dataGridView1.DataSource);
frm35.ShowDialog();
this.Close();
在第二种情况下:

 public partial class Form35 : Form
{
    public Form35(object dataSource)
    {
        InitializeComponent();

    dataGridView1.DataSource = dataSource;

       
    }

    private void Form35_Load(object sender, EventArgs e)
    {
   
        dataGridView1.Refresh();
        
    }
  
}
但是,第二个表单(表单35)中的datagridview仍然是空的。
谢谢您的帮助。

如果您在第一个表单网格绑定到数据源之后打开第二个表单,那么您的代码将可以正常工作。 检查以下代码以获取参考:

form1.cs

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable table = new DataTable();
        table.Columns.Add("Dosage", typeof(int));
        table.Columns.Add("Drug", typeof(string));
        table.Columns.Add("Patient", typeof(string));
        table.Columns.Add("Date", typeof(DateTime));

        // Step 3: here we add 5 rows.
        table.Rows.Add(25, "Indocin", "David", DateTime.Now);
        table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
        table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
        table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
        table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

        dataGridView1.DataSource = table;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form frm35 = new Form2(dataGridView1.DataSource);
        frm35.ShowDialog();
        this.Close();
    }
public partial class Form2 : Form
{
    public Form2(object dataSource)
    {
        InitializeComponent();
        dataGridView1.DataSource = dataSource;
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        dataGridView1.Refresh();
    }
}
Form2.cs

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable table = new DataTable();
        table.Columns.Add("Dosage", typeof(int));
        table.Columns.Add("Drug", typeof(string));
        table.Columns.Add("Patient", typeof(string));
        table.Columns.Add("Date", typeof(DateTime));

        // Step 3: here we add 5 rows.
        table.Rows.Add(25, "Indocin", "David", DateTime.Now);
        table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
        table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
        table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
        table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

        dataGridView1.DataSource = table;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form frm35 = new Form2(dataGridView1.DataSource);
        frm35.ShowDialog();
        this.Close();
    }
public partial class Form2 : Form
{
    public Form2(object dataSource)
    {
        InitializeComponent();
        dataGridView1.DataSource = dataSource;
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        dataGridView1.Refresh();
    }
}
谢谢