我已经找到了关于这个主题的一些信息,但是我仍然不完全理解它,如果有人会告诉我如何在我的例子中做到这一点,我会很高兴。如何使用/传递参数给事件处理程序?
基本上,我有填充有在VB.Net视窗对象的数组窗体应用程序
Dim button(9) As cbuttons
public sub fill()
button(1) = New cbuttons("buttonName1", 2, true)
button(2) = New cbuttons("ButtonName2", 3, true)
button(3) = New cbuttons("ButtonName3", 4, true)
...
此阵列用作按钮,它们是动态生成的
public sub writeButtons()
For Each item As cbutton In button
Dim cmbDynamic As New Button()
cmbDynamic.Location = New System.Drawing.Point(item.getX(), item.getY())
cmbDynamic.Name = item.getname()
cmbDynamic.Text = item.getName() & vbCrLf & item.getTypeString()
TabPage1.Controls.Add(cmbDynamic)
AddHandler cmbDynamic.Click, AddressOf Me.clicked 'here is the problem
然后,源我有一个子应该这样做这样的
public sub clicked()
MessageBox.Show("You clicked on button " & ButtonName)
但是,我不知道如何将按钮的名称(或任何其他参数)传递给子点击(),因为我不能将任何参数添加到AddHalnder线和callByName()也不起作用
我正在寻找一个解决方案可能看起来像这样在Javascript中指出:
onlick="clicked(this.id)"
谢谢
你真的帮了我很多,谢谢。即使认为我现在不需要它,但我很好奇是否可以传递超过1个参数。 – Labe
@Labe我编辑了我的答案,看看它是否有帮助。 – Crono