我阅读了有关向 AddHandler 事件添加参数的所有当前帖子,但我无法将它们应用于我的情况。
在 VB.NET 2008 中的 MDI 程序中,我有一个模块 QuickSaleModule,它调用多个模式数据输入表单以将订单添加到表中。发生这种情况时,会打开一个带有网格的表单,其中显示表中的所有订单。此表单网格已与订单模块分开打开,因此表单和模块都不会相互依赖,尽管它们是解决方案中同一项目的一部分。订单网格来自 SQL 查询。
在模块中,我定义了简单事件:
公共事件 RefreshGrid()
我在模块中的某个点提出它 - 在输入并保存订单之后:
RaiseEvent RefreshGrid()
现在以我在加载事件中的顺序网格形式:
AddHandler QuickSaleModule.RefreshGrid, AddressOf RefreshMyGrid
对于 RefreshMyGrid() 处理程序,我有:
Public Sub RefreshMyGrid()
DoReturnSetup() – a sub in the grid form
removeHandler QuickSaleModule.RefreshGrid, AddressOf RefreshMyGrid
End Sub
这将调用 SQL 查询以使用新顺序刷新网格。在退出之前,可能会通过 quickSaleModule 添加许多订单,因此每次输入新订单时我都会调用该事件,因此在表单关闭时删除处理程序没有意义。但是,这是我创建的第一个 AddHandler 事件。
以下是我的问题:
最重要的。如何将模块中的 orderID 作为参数传递给网格表单中的 RefreshMyGrid 处理程序?我想我可以使用全局变量,但我更喜欢更好的东西。现在作为一个事件新手,我似乎无法使用其他调用事件的方法。当我退出从网格表单调用的数据输入表单时,我使用 with 事件(带参数)。但正如我所说,在这种情况下,没有任何联系。
“removeHandler QuickSaleModule.RefreshGrid, AddressOf RefreshMyGrid”的位置是否正确?或者应该是关闭事件的形式。
最后, RefreshMyGrid 是否需要公开?