如何在VB.NET中为以编程方式创建的对象创建事件处理程序?

Gre*_*egH 18 .net vb.net

假设我有一个动态创建的对象.例如,假设我创建了一个名为"MyButton"的按钮:

Dim MyButton as New Button()
MyButton.Name = "MyButton"
Run Code Online (Sandbox Code Playgroud)

我如何创建一个"点击"事件?如果它是静态创建的,我可以创建一个函数:

Private Sub MyButton_Click(ByVal sender as system.object, ByVal e As System.EventArgs) Handles.
Run Code Online (Sandbox Code Playgroud)

如何为MyButton实现事件处理程序?

Ric*_*key 28

你使用AddHandlerAddressOf喜欢这样:

Dim MyButton as New Button()
MyButton.Name = "MyButton"
AddHandler MyButton.Click, AddressOf MyButton_Click
Run Code Online (Sandbox Code Playgroud)

MSDN文档中有更多信息:

  • 为什么这不是答案? (4认同)

Thr*_*aka 10

使用较新版本的VB.NET,您可以使用内联lambda表达式而不是整个方法(如果需要)

Dim MyButton as New Button()
MyButton.Name = "MyButton"
AddHandler MyButton.Click, Sub(sender2, eventargs2)
                               'code to do stuff
                               'more code to do stuff
                           End Sub
Run Code Online (Sandbox Code Playgroud)