我正在使用DataGridView编写此数据库,并创建了第二个表单,可以将新数据输入到我的本地数据库表中。一切正常但数据网格视图中的数据未更新。所以我在我的两个表中创建了另一个button_3和函数TableAdapter.Fill,当按下这个按钮时,datagridview就会更新。现在我想要的是在我按下form2上的写入按钮后更新DataGridView,以便在form2关闭后立即填充新数据,但到目前为止没有任何工作。
Form1:
private void button2_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
public void button3_Click(object sender, EventArgs e)
{
this.carsTableAdapter.Fill(this.databaseDataSet1.Cars);
this.driversTableAdapter.Fill(this.databaseDataSet1.Drivers);
}
窗体2
private void Form2_Load(object sender, EventArgs e)
{
this.carsTableAdapter.Fill(this.databaseDataSet1.Cars);
this.driversTableAdapter.Fill(this.databaseDataSet1.Drivers);
this.carsBindingSource.AddNew();
this.driversBindingSource.AddNew();
}
private void button1_Click(object sender, EventArgs e)
{
this.Validate();
this.carsBindingSource.EndEdit();
this.driversBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.databaseDataSet1);
this.Close();
Form1 form1 = new Form1();
form1.button3_Click(this, new EventArgs());
}
基本上我的问题是如何用form2调用form2中的button3_Click事件,因为在没有参数的函数中调用2个TableAdapter.Fill行不起作用。
答案 0 :(得分:0)
将Form2
显示为模式对话框,这将阻止代码运行后直到表单关闭。
然后在显示表单后将逻辑从button3_Click
移到右边,如下所示:
private void button2_Click(object sender, EventArgs e)
{
using (Form2 form2 = new Form2())
form2.ShowDialog();
this.carsTableAdapter.Fill(this.databaseDataSet1.Cars);
this.driversTableAdapter.Fill(this.databaseDataSet1.Drivers);
}
从第二个表单上的button1_Click
中删除以下代码。它无论如何都没有做任何有用的事情,因为你正在创建一个Form1
的新实例,它与显示给用户的当前实例无关。
Form1 form1 = new Form1();
form1.button3_Click(this, new EventArgs());