首页 > 解决方案 > 将 DataGridView 从一个窗体复制到另一个窗体

问题描述

我正在为超市购买制作表单,添加到购物车的每个项目都显示在 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 仍然是空的。谢谢您的帮助。

标签: c#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();
    }

Form2.cs

public partial class Form2 : Form
{
    public Form2(object dataSource)
    {
        InitializeComponent();
        dataGridView1.DataSource = dataSource;
    }

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

谢谢,


推荐阅读