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