【发布时间】:2015-05-06 11:16:26
【问题描述】:
我想在 VB(.NET) 中制作一个程序,在该程序中,每次单击一个按钮都会向用户窗体添加一个或多个新按钮。这个过程应该工作无数次。然后按钮将调用一个公共子,传递一个单独的变量,以便代码知道它是从哪个按钮调用的(因此:知道该做什么)。
我学习了如何使用Button = new Button 和controls.add(Button) 代码在运行时创建按钮。我还设法使用WithEvents 或AddHandler 将新代码传递给按钮。但直到现在,我总是需要在程序运行之前准备好代码。 IE。我需要提前知道按钮的名称并准备好代码。
有没有办法动态创建在运行时截断的代码,以指向预先存在的代码?
我给你一个简单的例子:
WithEvents NewButton01 As New Button
WithEvents NewButton02 As New Button
WithEvents NewButton03 As New Button
Private Sub AddNewButton_Click() Handles AddNewButton.Click
NewButton01.Location = New Point(10, 10)
NewButton01.Text = "01"
Controls.Add(NewButton01)
NewButton02.Location = New Point(50, 50)
NewButton02.Text = "02"
Controls.Add(NewButton02)
NewButton03.Location = New Point(90, 90)
NewButton03.Text = "03"
Controls.Add(NewButton03)
End Sub
Private Sub NewButton01_click() Handles NewButton01.Click
Call MessageBox(1)
End Sub
Private Sub NewButton02_click() Handles NewButton02.Click
Call MessageBox(2)
End Sub
Private Sub NewButton03_click() Handles NewButton03.Click
Call MessageBox(3)
End Sub
Private Sub MessageBox(flag As Integer)
MsgBox("You activated button number " & flag)
End Sub
如您所见,这是一种非常不专业的编码方式。另外,我想保持创建的按钮数量无限,所以我不能使用这段代码。我宁愿让 VB 每次单击“AddNewButton”时都创建一个新按钮,并编写一个引用 Private Sub MessageBox 的代码或最后可能的任何代码。
我是 VB.Net 的新手,所以如果示例中包含任何让您颤抖的内容,请原谅我。
非常感谢!
【问题讨论】: