合并执行相同操作的私有潜艇

时间:2014-11-13 12:59:48

标签: vb.net visual-studio-2013 mouseevent

我有一些私人潜艇做同样的事情(在ForeColor上更改MouseEnter),所以想知道他们是否可以合并/组合一些如何创建更少的编码?

现在的示例:

Private Sub FooBar_MouseEnter(sender As Object, e As EventArgs) Handles FooBar.MouseEnter
        FooBar.ForeColor = Color.White
    End Sub

Private Sub FooBar2_MouseEnter(sender As Object, e As EventArgs) Handles FooBar2.MouseEnter
        FooBar2.ForeColor = Color.White
    End Sub

2 个答案:

答案 0 :(得分:1)

Private Sub FooBar_MouseEnter(sender As Object, e As EventArgs) Handles FooBar.MouseEnter, FooBar2.MouseEnter
    FooBar.ForeColor = Color.White
    FooBar2.ForeColor = Color.White
End Sub

是的。只需用逗号分隔处理程序。


在我的回答下面的评论之后,这变得明显了。如果您不想组合事件,或者当表单控件触发事件时至少两种颜色都发生更改,则需要使用if语句来检查触发了哪个表单控件。这真的不会为你节省太多的字符编码,但我想它可以为你节省额外的事件处理功能。 E.g:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click, Button2.Click
    If Button1.Focused Then
        Button1.BackColor = Color.Red
    End If

    If Button2.Focused Then
        Button2.BackColor = Color.Blue
    End If
End Sub

答案 1 :(得分:0)

我不知道foobars是什么样的控件,但这里有一个按钮示例:

Private Sub ButtonClick(sender As System.Object, e As System.EventArgs) handles Button1.click, Button2.Click, ... ,ButtonN.Click
    Dim btn As Button = CType(sender, Button)
    btn.BackColor = Drawing.Color.Red
 End Sub
相关问题