Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vb.net中将事件添加到按钮_.net_Vb.net_Events - Fatal编程技术网

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

在vb.net中将事件添加到按钮,.net,vb.net,events,.net,Vb.net,Events,这是我的代码,我想添加一个事件到btn按钮,我希望我把我的问题弄清楚,并为我的英语不好道歉 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.

这是我的代码,我想添加一个事件到btn按钮,我希望我把我的问题弄清楚,并为我的英语不好道歉

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
Handles关键字要求您使用WithEvents关键字声明生成事件的控件。修正:

   Private Sub btnMove_Click(...) Handles btn.Click
另一种方法是使用AddHandler关键字显式订阅事件。在这种情况下,可以省略Handles关键字,改为这样写:

   Dim WithEvents btn As New Button()

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

您已经添加了
btn移动\u点击
btn处理程序,使用
Handles btn。点击
-以什么方式不起作用?@JonSkeet:他的代码有更深层次的问题;他试图误用数组。@JonSkeet Handles子句需要包含类型中定义的With Events变量或其某个基类型。由于btn将使用
WithEvents
语句
Dim WithEvents btn As New Button()声明,因此代码可能无法编译
能够使用
手柄btn。点击
@Chris它可以工作了非常感谢
   Dim WithEvents btn As New Button()
Private Sub Form1_Load(...) Handles MyBase.Load
   '' etc..
   AddHandler btn.Click, AddressOf btnMove_click
End Sub