将事件添加到vb.net中的按钮

时间:2013-09-01 16:24:18

标签: .net vb.net events

Public Class Form1
    Dim i As Integer = 0
    Dim txt As New TextBox()
    Dim btn As New Button()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        btn.Name = "btnMove"
        btn.Size = New Size(60, 20)
        btn.Location = New Point(220, 20)
        btn.Text = "move"
        btn.TextAlign = ContentAlignment.MiddleCenter
        Me.Controls.Add(btn)
        Me.BringToFront()
    End Sub

    Private Sub btnMove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click

    End Sub
End Class

这是我的代码,我想向btn添加一个事件Button我希望我能清楚地解决我的问题并抱歉我的英语不好

2 个答案:

答案 0 :(得分:1)

Public Class Form2
    Dim btn As New Button
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        btn.Name = "btnMove"
        btn.Size = New Size(60, 20)
        btn.Location = New Point(220, 30)
        btn.Text = "Move"
        btn.TextAlign = ContentAlignment.MiddleCenter
        Me.Controls.Add(btn)
        Me.BringToFront()
        AddHandler btn.Click, AddressOf btnMove_click
    End Sub
    Private Sub btnMove_click(ByVal sender As Object, ByVal e As System.EventArgs)
        MsgBox("welcome to salfkjsadlkf")
    End Sub
End Class

答案 1 :(得分:1)

   Private Sub btnMove_Click(...) Handles btn.Click

Handles 关键字要求您使用 WithEvents 关键字声明生成事件的控件。修正:

   Dim WithEvents btn As New Button()

另一种方法是使用AddHandler关键字显式订阅事件。在这种情况下,您省略了 Handles 关键字并将其写为:

Private Sub Form1_Load(...) Handles MyBase.Load
   '' etc..
   AddHandler btn.Click, AddressOf btnMove_click
End Sub

使用设计器添加这些控件当然是最好的方法,它避免了这样的小错误。