我的目的是在选择新的单选按钮时随时清除计算标签。目前,我正在使用7个单独的点击事件来调用相同的子过程,如下所示:
' the following 7 subprocedures clear totals boxes if any radio button is changed
Private Sub rbCappuccino_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbCappuccino.CheckedChanged
Call ClearLabels()
End Sub
Private Sub rbChocolate_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbChocolate.CheckedChanged
Call ClearLabels()
End Sub
Private Sub rbFilled_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbFilled.CheckedChanged
Call ClearLabels()
End Sub
Private Sub rbGlazed_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbGlazed.CheckedChanged
Call ClearLabels()
End Sub
Private Sub rbNone_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbNone.CheckedChanged
Call ClearLabels()
End Sub
Private Sub rbRegular_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbRegular.CheckedChanged
Call ClearLabels()
End Sub
Private Sub rbSugar_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbSugar.CheckedChanged
Call ClearLabels()
End Sub
我很好奇是否有办法合并这些事件,因为他们都称之为完全相同的子程序。任何意见,将不胜感激。谢谢!
答案 0 :(得分:5)
是的,您可以将多个事件附加到单个事件处理程序:
Private Sub CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbCappuccino.CheckedChanged, rbChocolate.CheckedChanged, rbFilled.CheckedChanged, rbGlazed.CheckedChanged, rbNone.CheckedChanged, rbRegular.CheckedChanged, rbSugar.CheckedChanged
Call ClearLabels()
End Sub
在这样的代码中,您甚至可以检测哪个CheckBox调用事件来对各个控件执行操作:
If CType(sender, CheckBox).Text = "Cup of Java" ....