让我快速描述一下这个场景: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天 .
4 回答
你需要使用 Event and delegate 来获得你想要的输出 .
我举个例子 .
假设Form1和Form2有两种形式 .
Form1 包含 DataGridView 和 search button .
Form2 包含名为ok的 textbox 和 button .
假设DataGridView填充 employee name 并且需要 search by name .
Form2在按下搜索按钮时打开,然后在form2上填写员工姓名后,当按下ok按钮时,Form2关闭,数据在员工姓名填写时被过滤 .
因此,要获得上述结果,您可以执行以下操作:
Code for Form1:
上面的代码做什么不需要解释 . <= :)
现在,
Code for Form2:
至于,我告诉 you need use event and delegate ,这里都是form2 .
在 Form2 中有一个名为 OnSearch 的 delegate 包含字符串参数 . 代表 OnSearch 也有 event OnSearchClick . 这里的代表在课堂上交付 .
接下来,创建FireEvent函数,在调用此方法时触发 event OnSearchClick .
单击btnSearch按钮时调用 FireEvent . 这里employeeName是在方法中传递的,你可以在方法中传递更多的参数或对象,你可以在Form1上得到它,你可以应用过滤器 .
如上所示编辑From1的代码,现在当您编写 frm2. intellisense时,为您提供名为 OnSearchClick 的事件,然后在一个空格后输入 += 然后 press tab . 它将生成 frm2_OnSearchClick 事件,因为您可以显示上面的代码 .
将所有参数从Form2传递给Form1(我只传递了一个)并编写您的逻辑以在 frm2_OnSearchClick 事件中绑定DataGridView .
现在,每当您单击 search button(which is on Form2) 时,它将触发 frm2_OnSearchClick event(which is in Form1) 并且DataGridView将刷新 .
在方法上添加绑定到网格,这样我就可以在事件的任何地方轻松调用 .
然后在你的
希望这有帮助 .
问候
每当需要刷新网格时只需重新分配dataSource即可 .