0

我有一种情况,我正在动态创建单选按钮,我需要在 CheckedChanged 上分配一个处理程序。在这里,我没有任何特定的功能或程序。所以我写了这个声明:

 AddHandler rb.CheckedChanged, AddressOf rb.Tag

但它给出了错误。我怎样才能做到这一点?

编辑:

实际上,我正在为公司的其他程序员编写一个 DLL。所以他们可以在运行时设计一个特定的表格。现在我有一个创建所有控件的过程。所以现在,如果他们想创建一个单选按钮,他们会调用该过程

AddRadioButton(Text as string, Checked as boolean)

现在应要求,我想在其中添加另一个参数,他们可以将过程名称作为字符串提供,我可以将处理程序添加到过程名称的地址。所以现在程序会变成这样

AddRadioButton(Text as string, Checked as boolean, OnCheckedProcedure as string)

在我的代码中,我将使用

AddHandler rb.CheckedChanged, AddressOf OnCheckedProcedure
4

1 回答 1

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
于 2013-02-04T08:07:14.857 回答