Mar*_*oDS 6 vb.net local-variables event-handling
我在VB.NET中有一个表单,用作mainform中的对话框.它的实例总是在本地定义,没有字段.当用户单击对话框中的"确定"按钮时,它将使用一个参数(我的一个类的实例)触发一个事件.
由于它始终是局部变量,如何为该事件添加事件处理程序?我已经搜索过自己并找到了一些东西,但我无法弄清楚...
活动代码,一个字段MyDialog:
public Event ObjectCreated(ByRef newMyObject as MyObject)
Run Code Online (Sandbox Code Playgroud)
调用对话框的主窗体代码:(别介意语法)
Dim dialog As New MyDialog()
dialog.ShowDialog(Me)
AddHandler ObjectCreated, (what do I put here?) //Or how do I add a handler?
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我坚持如何为我的事件添加处理程序.谁能帮我?最好的方法是做到这一点......
为了保持一致性,建议您使用与所有系统事件处理程序相同的源和事件args模型.
创建自己的继承自EventArgs的类,如下所示:
Public Class MyObjectEventArgs
Inherits EventArgs
Public Property EventObject As MyObject
End Class
Run Code Online (Sandbox Code Playgroud)
然后声明您的事件和处理程序方法,如:
Public Event ObjectCreated As EventHandler(Of MyObjectEventArgs)
Private Sub Container_ObjectCreated(ByVal sender As Object, ByVal e As MyObjectEventArgs)
' Handler code here
End Sub
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令将处理程序附加到事件
AddHandler ObjectCreated, AddressOf Container_ObjectCreated
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用Handles附加到从主窗体中引发的事件(假设名称为MainForm),如下所示:
Private Sub MainForm_ObjectCreated(ByVal sender As Object, ByVal e As MyObjectEventArgs) Handles MainForm.ObjectCreated
' Handler code here
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12921 次 |
| 最近记录: |