我有一种情况,我正在动态创建radiobutton,我需要在CheckedChanged上分配一个处理程序。在这里,我没有任何具体的功能或程序。所以我写了这句话:
AddHandler rb.CheckedChanged, AddressOf rb.Tag
但它给出了错误。我怎样才能做到这一点?
编辑:
实际上我正在为公司的其他程序员编写DLL。因此他们可以在运行时设计一个特定的表单。现在我有一个创建所有控件的过程。所以现在如果他们想创建一个单选按钮,他们就会调用程序
AddRadioButton(Text as string, Checked as boolean)
现在请求,我想在这里添加另一个参数,他们可以将Procedure名称作为字符串,我可以将处理程序添加到ProcedureName的地址。所以现在程序将变成这样的
AddRadioButton(Text as string, Checked as boolean, OnCheckedProcedure as string)
在我的代码中,我将使用
AddHandler rb.CheckedChanged, AddressOf OnCheckedProcedure
答案 0 :(得分:1)
您添加的方法有一个处理程序必须具有与您尝试处理的事件相同的参数。就RadioButton而言,这就是你想要做的事情的处理程序:
Private Sub CheckedChanged(sender As Object, e As EventArgs)
Dim tempRB As RadioButton= CType(sender, RadioButton)
tempRB.Tag = tempRB.Checked.ToString
End Sub
然后你可以像这样添加你的处理程序:
AddHandler rb.CheckedChanged, AddressOf CheckedChanged