如何将处理程序添加到五个动态按钮

时间:2019-06-28 14:10:38

标签: asp.net vb.net

我的Page_Load事件中包含以下代码:

    For number As Integer = 1 To 5
        Dim btn As Button = New Button With {
                .Text = "Test" & number.ToString(),
                .ID = "Test" & number.ToString()
                }

        AddHandler btn.Click, AddressOf btn_Click

        buttons.Controls.Add(btn)
    Next

以及Page_Load下方的事件处理程序:

Private Sub btn_Click(sender As Object, e As EventArgs)
    Dim btn As Button = CType(sender, Button)
    Debug.WriteLine($"Button {btn.Text} was pressed")

End Sub

我没有对AddHandler做正确的事情,因为当我单击五个按钮中的任何一个时,它都不会触发。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:-1)

我在VB.NET中工作时对我的代码进行了稍微的编辑,但这对我有用,因为VB.NET将每个按钮放在窗体的左上角,因此我不得不根据整数更改每个按钮的位置。让我知道你过得怎样

公开课表格1     私有子Form1_Load(作为对象发送,作为EventArgs发送)处理MyBase.Load

    For number As Integer = 1 To 5

        Dim btn As Button = New Button With {
                                    .Text = "Test" & number.ToString(),
                                    .Name = "Test" & number.ToString(),
                                    .Top = number.ToString * 20
        }

        AddHandler btn.Click, AddressOf btn_Click



        Me.Controls.Add(btn)
    Next



End Sub


Private Sub btn_Click(sender As Object, e As EventArgs)
    Dim btn As Button = CType(sender, Button)
    Debug.WriteLine($"Button {btn.Text} was pressed")
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs)

End Sub

结束班级