如何使用VB.NET在AddHandler中传递参数

Wil*_*ill 1 vb.net

这就是我想要做的.我正在使用autoback创建一个动态检查,点击后,将转到我的子程序并执行某些操作.我试图传递的两个参数是checkox所在的表和复选框id的名称.但是我收到了错误

AddressOf必须是没有括号或方法的方法的名称

方法没有与sender作为对象兼容的签名,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)
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 6

注册事件处理程序时,不能传递参数.

相反,您可以在自定义事件的情况下引发该事件时传递它们.

在这里,您需要处理CheckedChanged事件,转换SenderCheckBox并使用它的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 
Run Code Online (Sandbox Code Playgroud)