单击动态添加按钮时如何执行操作

时间:2016-05-25 17:09:18

标签: vb.net winforms

我需要在代码中在运行时动态创建一个新按钮并将其添加到我的表单中。当我点击新按钮时,我需要它来做某事。对于我在设计时在表单上绘制的普通按钮,我会做这样的事情:

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Process.Start("")
End Sub    

但是,在这种情况下,我在另一个按钮的click事件中创建一个新按钮,我不知道如何在点击它时为其分配功能。

1 个答案:

答案 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关键字,根据您的需要,您可以更轻松地使用它。