我的项目中有两种形式
当我单击Form1上的按钮时,Form2将打开。
我在form2上有一些文本框。
当我在那个文本框中写一些文字时,我有一个按钮保存。
通过单击“保存”按钮,数据将保存到数据库,并且form2将关闭。所以显示了form1。
我在form1中有一个datagridview。它包含表格中的数据,我在表格中保存了来自form2的数据。
现在的问题是,当我点击form2上的“保存”按钮时,form1中的datagridview没有添加的最后一条记录。
这是非常期待的行为,因为我在form1.Load事件中填充datagridview中的数据。
那么我应该使用哪个事件来刷新DataGridView中的数据?
我尝试了paint event of form1
,但这不起作用。
我在form1.refresh()
事件中尝试了form2.Closing
。
我也尝试了gotFocus event of form1
,但它意外地崩溃了程序。
答案 0 :(得分:1)
我建议尽可能使用form2.ShowDialog
打开表单,因为这是阻止调用而不是form2.Show
。
当表单2关闭时,代码将在ShowDialog
调用后继续到下一行,允许您刷新列表。
另一种方法是创建自己的活动:
1)在form2 Public Event EventName()
中定义一个新事件
2)使用表单1中的AddHandler form2Instance.EventName, AddressOf HandlerFunctionName
来挂钩事件
3)在form2中保存代码后,使用RaiseEvent EventName
将触发代码
答案 1 :(得分:1)
如果需要将数据刷新到DataGridView,可以在Form1上调用refresh方法。您可以在Form1 Load上调用相同的方法来填充数据。
例如,如果您有一个名为RefreshData()的方法,则可以在关闭Form2
时执行此操作Dim frm1 = CType(Form1, Application.OpenForms("Form1"))
frm1.RefreshData()
DataGridView的基础数据源是什么?可能有更好的选择,但需要更多信息才能知道。