2015-11-13 83 views
0

这是我点击一个标签以便改变颜色的方法,但是我想知道如何制作它,所以下一个标签也只会在点击时变成红色。 在在Visual Studio中做多个标签

我总共有48个标签如果Seat1.BackColor = Color.White然后 Seat1.BackColor = Color.Red 否则 Seat1.BackColor = Color.White 结束如果

回答

1

你可以有同样的子程序处理所有的座位标签上单击事件的铸造sender参数作为标签:

Private Sub HandleSeatClick(sender As Object, e As EventArgs) Handles Seat1.Click, Seat2.Click, Seat3.Click 

    Dim lblTarget As Label = CType(sender, Label) 

    If lblTarget.BackColor = Color.White Then 

     lblTarget.BackColor = Color.Red 

    Else 

     lblTarget.BackColor = Color.White 

    End If 

End Sub 

如果你所有的座位标签以同样的方式(例如= Seat5,Seat6,Seat7命名。 ..,Seat48),那么你可以利用AddHandler你不必连线了在HandleSeatClick常规定义处理48个标签:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

    Dim intCursor As Integer = 1 

    Do Until intCursor = 48 

     Dim lblTarget As Label = CType(Me.Controls.Find("Seat" & intCursor.ToString(), False).First(), Label) 

     AddHandler lblTarget.Click, AddressOf HandleSeatClick 

     intCursor += 1 

    Loop 

End Sub 
+0

觉得这是值得一提的是,即使所有的标签都没有以同样的方式命名,你可以添加所有的他们到相同的容器(组框,面板等),并以与上述相同的方式遍历所有标签。 – RianBattle

+0

这是一个很好的观点,谢谢。 – N0Alias