这就是我想要做的。我正在使用autoback创建一个动态检查,点击后,将转到我的子程序并执行某些操作。我试图传递的两个参数是checkox所在的表和复选框id的名称。但是我收到了错误
AddressOf必须是没有括号或
的方法的名称方法没有与发件人兼容的签名作为对象,e system.eventArgs“。这是我的代码。
chkSel = New CheckBox
chkSel.ID = "check_" & CStr(a)
chkSel.AutoPostBack = True
'This is where I get the error
AddHandler chkSel.CheckedChanged, AddressOf change_operating_items(tableName, "check_" & CStr(a))
tblcell.Controls.Add(chkSel)
tblrow.Cells.Add(tblcell)
答案 0 :(得分:6)
注册事件处理程序时,不能传递参数。
相反,您可以在自定义事件的情况下引发该事件时传递它们。
您需要处理CheckedChanged
事件,将Sender
转换为CheckBox
并使用ID
属性。
Sub change_operating_items(sender As Object, e As EventArgs)
Dim chk = DirectCast(sender, CheckBox)
Dim id = chk.ID
' do something with it '
EndSub