【发布时间】:2014-12-26 01:25:16
【问题描述】:
我的问题:
我有.Enter 和.TextChanged 事件,它们都触发完全相同的代码。我已将这些事件组合在一个处理程序下。出于某种原因,这是否被认为是不好的做法,或者在这种特定情况下,简化我的代码是否明智?
示例代码:
合并在一个处理程序下:
Private Sub TextBox_EnterChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter, TextBox2.Enter, TextBox1.TextChanged, TextBox2.TextChanged
'Some action.
End Sub
默认单独的处理程序:
Private Sub TextBox_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter, TextBox2.Enter
'Some action.
End Sub
Private Sub TextBox_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged
'The same action.
End Sub
【问题讨论】:
-
TextBox_EnterChanged不是事件 -
@NeethuSoman 我知道。它是一个事件处理程序,其名称是任意的。向右滚动代码块以查看事件。无论我如何命名事件处理程序,都会处理这些事件。我的理解有误吗?
-
@NeethuSoman,是一个方法的名字,是合法的。
-
另一种方法是将处理程序分开,但将
action的代码放在它自己的方法中。这样,您只需在一处更改操作。 -
@ChrisDunaway 对于上下文,我的实际代码的操作调用了一个外部方法并传递了一些参数,例如活动文本框和相关属性。该操作大约有 150 行代码。当我可以通过组合我的事件对其进行一次迭代时,将这些行粘贴两次感觉很笨重。我是originally,甚至将所有事件组合到单个处理程序中,并将事件类型作为参数传递给外部单个方法。从那以后,我在这个网站上受到其他成员的教育,这是一种不好的做法,因为它走得太远了。
标签: vb.net winforms visual-studio events event-handling