Недавно я работал над программой, которая имеет несколько TextBoxes, CheckBoxes, ComboBoxes и т. Д., И я обнаружил, что сделать одну функцию для обработки нескольких событий довольно просто, вы просто разделяете события запятой и кодомраспознает отдельные события.
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click, Button2.Click
MsgBox("Hello World!")
End Sub
Однако, когда вы начинаете обрабатывать большое количество событий, которые вы хотите обрабатывать одной и той же функцией, он становится немного грязным.
Private Sub Checks_CheckedChanged(sender As Object, e As EventArgs) Handles chkInput1.CheckedChanged, chkInput2.CheckedChanged, chkInput3.CheckedChanged, chkInput4.CheckedChanged, checkInput5.CheckedChanged, chkOutput.CheckedChanged
MsgBox("Checks Changed!")
End Sub
Вы можете использовать символ продолжения строки _
, чтобы он выглядел немного лучше.
Private Sub Checks_CheckedChanged(sender As Object, e As EventArgs) Handles _
chkInput1.CheckedChanged, chkInput2.CheckedChanged, chkInput3.CheckedChanged, _
chkInput4.CheckedChanged, checkInput5.CheckedChanged, chkOutput.CheckedChanged
MsgBox("Checks Changed!")
End Sub
Но у вас все равно остался неприятный блок текста.Есть ли более чистый / лаконичный способ сделать это?Я имею в виду, что было бы неплохо привести массив событий объекта в качестве аргумента, но я не думаю, что это возможно.