【发布时间】:2019-05-24 01:22:12
【问题描述】:
我正在使用 PictureBox 控件创建一个游戏并添加一个 MouseDown 事件来处理减少 PictureBox 的“健康”值。
我想在初始控件失去所有健康时以编程方式添加一个新控件,以便我可以为新 PictureBox 的显示方式添加变化,但我不知道如何向以编程方式创建的控件添加事件处理程序.
更新:感谢您的帮助! 这就是我完成的代码的工作方式,如果你也想这样做的话。
Public Class Form1
Private Sub NewBug()
Dim pbBug As New PictureBox With {
.Name = "pb",
.Width = 100,
.Height = 100,
.Top = 75,
.Left = 75,
.SizeMode = PictureBoxSizeMode.Zoom,
.Image = My.Resources.bug}
Me.Controls.Add(pbBug)
AddHandler pbBug.MouseDown, Sub(sender As Object, e As EventArgs)
MessageBox.Show("Hello", "It Worked")
End Sub
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
NewBug()
End Sub
谢谢, SunnyCr
【问题讨论】:
-
删除
Handles MyButton.Click,添加Me.Controls.Add(MyButton) -
请注意,在任何事件处理程序中,您都可以使用
sender参数来访问引发事件的对象。这意味着,如果您使用一种方法处理多个对象的事件,则可以确定哪些对象引发了该事件。 -
以后,你可以像
.Controls.Add 一样向父级添加控件,例如 Me.Controls.Add(Picturebox),而像 add handler object.type 一样添加和删除处理程序,地址方法如addhandler pbBug.MouseDown,TestSub()的地址 -
您更改了问题的原始内容对我来说很奇怪。这些 cmets 和 answer 现在看起来像孤儿了
-
@Mr.Tripodi,对不起,这是我的第一篇文章。我不太确定我应该如何处理它。
标签: vb.net events controls programmatically