让我快速描述一下这个场景: 1)在Form1中,我有一个名为dgv_Employee的dataGridView和一个searchButton。 2)在Form1的pageload事件中,有一个代码填充dataGridView。在这里,我使用linq to sql来填充数据。(例如,dgv_Employee.dataSource = Dbmlobject.Employee;) 3)每当按下searchButton时,将打开一个新的Form Form2,用户通过提供适当的输入来搜索特定的员工。 4)单击搜索按钮时,我希望搜索结果显示在dataGridView和Form2中以便关闭。我已成功关闭form2。无法从form2刷新form1中的datagridview。
请耐心等待我3天。
答案 0 :(得分:1)
您需要使用事件和委托来获取您的愿望输出。
让我举个例子。
假设Form1和Form2有两种形式。
Form1的代码:
private void btnSearch1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
}
以上代码做什么不需要解释。 &LT = :)
现在,
答案 1 :(得分:1)
Form2 form2 = new Form2();
//add handler to catch when child form is closed
form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
form2.ShowDialog();
private void form2_FormClosed(object sender, FormClosedEventArgs e)
{
//when child form is closed, this code is executed
// Bind the Grid view
PopulateControls();
}
答案 2 :(得分:0)
在方法上添加绑定到网格,这样我就可以在事件的任何地方轻松调用。
private void BindTogrid()
{
//call again you binding
dgv_Employee.dataSource = Dbmlobject.Employee;
}
然后在你的
下searchButton click()
{
Form2 form2 = new Form2();
form2.ShowDialog(); //Show Form2
BindTogrid(); //Execute if Dialog has been closed;
}
希望得到这个帮助。
此致
答案 3 :(得分:0)
每当需要刷新网格时,只需重新分配dataSource。