如何只创建一个更改任何标签的背景颜色的过程?

时间:2017-01-22 15:20:33

标签: vb.net

伙计们,我说有3个名为“lblTest1”,“lblTest2”和“lblTest3”的标签。所有标签都有相同的背景色,黑色。

interChange

现在我想在点击时将标签的背景颜色更改为红色,因此每个事件需要3个不同的程序。

ghci> zip [1,2,3] ["wibble", "wobble", "wubble"]
[(1,"wibble"),(2,"wobble"),(3,"wubble")]

我要做的是创建仅一个子功能,将的任何标签的背景颜色更改为colors.red。是否有可能做到这一点?你能解释一下吗?因为目前我正在使用至少300个标签,不仅改变了颜色,还改变了其他动作,因此解决方案将非常有用。 :)

2 个答案:

答案 0 :(得分:0)

您可以在同一个子中处理多个事件,如下所示:

Private Sub label_Click(sender As Object, e As EventArgs) Handles   
        lblTest1.Click, lblTest2.Click, lblTest3.Click

要获取已点击的标签,请使用传递给子的发件人:

Private Sub label_Click(sender As Object, e As EventArgs) Handles   
        lblTest1.Click, lblTest2.Click, lblTest3.Click
    cType(sender, Label).BackColor = Color.Red
End Sub

答案 1 :(得分:0)

在这种情况下,相同的子句可以处理多个控件的事件(标签)。

如下所示:

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles Label1.Click, Label2.Click, Label3.Click ... 

            Dim myLabel = DirectCast(sender, Label)
            myLabel.ForeColor = Color.Red

        End Sub