如何在VB.NET中编写事件处理程序?

Pau*_*ter 1 .net vb.net events visual-studio-2005 event-handling

我正在尝试测试VB.NET中非常简单的事件处理。

到目前为止,我有:

Public Delegate Sub TestEventDelegate()
Public Event TestEvent As TestEventDelegate

Sub MySub
    Raise TestEvent
End Sub
Run Code Online (Sandbox Code Playgroud)

您如何为刚刚显示简单的上述事件编写事件处理程序MessageBox

Jon*_*eet 5

编写处理程序方法很简单-只需编写Sub不带参数的a并显示一个消息框。

然后,您需要为该事件订阅处理程序,您可以Handles在该方法中添加一个子句:

Sub ShowMessageBox() Handles foo.TestEvent
Run Code Online (Sandbox Code Playgroud)

或使用一条AddHandler语句:

AddHandler foo.TestEvent, AddressOf ShowMessageBox
Run Code Online (Sandbox Code Playgroud)

请注意,要遵循.NET约定,您的委托人应具有两个参数-一个Object用于指定引发该事件的对象的类型,另一个EventArgs用于提供任何其他信息的类型或子类。这不是语言要求的,但这是一个广泛遵循的约定。