有没有一种方法可以为子变量“ Handles Rdb1.Move,Rdb2.Move”

时间:2019-05-06 05:49:54

标签: vb.net

我是Visual Studio 2017的新手。我希望有一个变量充当子代码的一部分,所以与其写完整的事情,我不想只写变量。

我正在为学校项目制作菜单。我真的没有尝试过任何东西,因为我不知道代码是如何工作的。

Private Sub ckb1_CheckedChanged(sender As Object, e As EventArgs) Handles ckb1.CheckedChanged, rdbSuper.CheckedChanged, rdbPong.CheckedChanged

如何将rdbSuper.CheckedChanged, rdbPong.CheckedChanged变成变量,以便将其放在句柄之后?

1 个答案:

答案 0 :(得分:1)

您可以为每个Sub-Event使用相同的代码,而不是使用CheckedChanged,而是创建一个Sub并将该函数绑定到事件,并使用AddHandler:< / p>

Sub FunctionForEventCheckedChanged(sender As Object, e As EventArgs)
    'Your code for the CheckedChanged-Event.
End Sub

'bind the events with the FunctionForEventCheckedChanged function.
AddHandler rdbSuper.CheckedChanged, AddressOf FunctionForEventCheckedChanged
AddHandler rdbPong.CheckedChanged, AddressOf FunctionForEventCheckedChanged

您还可以使用FunctionForEventCheckedChangedsender函数内检查特定的复选框。因此,您还可以为特定的复选框创建一些代码。

这如何为您提供帮助?

您似乎想将一个功能分配给多个事件。由于您无法将事件归类到变量中,因此无法在Handles上使用此变量,因此您可以执行以下操作(基于上述说明):

Dim arrCheckBoxes() As Control = {rdbSuper, ckb1}

For Each ctrlCheckBox As Control In arrCheckBoxes
    AddHandler ctrlCheckBox.CheckedChanged, AddressOf FunctionForEventCheckedChanged
Next