我需要在代码中在运行时动态创建一个新按钮并将其添加到我的表单中。当我点击新按钮时,我需要它来做某事。对于我在设计时在表单上绘制的普通按钮,我会做这样的事情:
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Process.Start("")
End Sub
但是,在这种情况下,我在另一个按钮的click事件中创建一个新按钮,我不知道如何在点击它时为其分配功能。
答案 0 :(得分:2)
创建新控件时,需要将其添加到表单的Controls
集合(或表单上的某个容器控件)。例如:
Dim myButton As New Button()
Me.Controls.Add(myButton)
但是,要捕获并处理click事件,您需要声明和事件处理程序方法,然后使用AddHandler
关键字将其连接起来。例如,如果您有这样的方法:
Private Sub MyClickHandler(sender As Object, e As EventArgs)
' ...
End Sub
然后您可以将其添加为按钮的Click
事件的处理程序,如下所示:
AddHandler myButton.Click, AddressOf MyClickHandler
但是,无论何时,只要不再需要,就应确保从事件中删除处理程序,如下所示:
RemoveHandler myButton.Click, AddressOf MyClickHandler
VB.NET还提供了方便的WithEvents
关键字,根据您的需要,您可以更轻松地使用它。