0
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 にイベントを追加したいのですが、問題を明確にして下手な英語で申し訳ありません

4

2 に答える 2

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
于 2013-09-01T16:39:31.540 に答える
1
   Private Sub btnMove_Click(...) Handles btn.Click

Handlesキーワードでは、 WithEventsキーワードでイベントを生成するコントロールを宣言する必要があります。修理:

   Dim WithEvents btn As New Button()

もう 1 つの方法は、AddHandler キーワードを使用して明示的にイベントをサブスクライブすることです。その場合、Handlesキーワードを省略して、代わりに次のように記述します。

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

デザイナーを使用してこれらのコントロールを追加することは確かに最善の方法であり、このような小さな間違いを避けることができます。

于 2013-09-01T16:43:13.830 に答える