简体   繁体   中英

Dynamically change button background color in vb.net

I have 3 buttons in my .Net app and I would like to know how I can perform the below code dynamically.

Public Class frmTC

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Button1.BackColor = Color.Red
    Button2.BackColor = Color.Yellow
    Button3.BackColor = Color.Yellow
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Button1.BackColor = Color.Yellow
    Button2.BackColor = Color.Red
    Button3.BackColor = Color.Yellow
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Button1.BackColor = Color.Yellow
    Button2.BackColor = Color.Yellow
    Button3.BackColor = Color.Red
End Sub

End Class
Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button3.Click
   Dim btn As Button = CType(sender, Button)
   SetColor(btn)
End Sub

Private Sub SetColor(Button button)
    Button1.BackColor = Color.Yellow
    Button2.BackColor = Color.Yellow
    Button3.BackColor = Color.Yellow
    button.BackColor =Color.Red
End Sub

If you want to call Above button clicks, you can use PerformClick() method to call Events.

For More information, please visit Here

You can handle all the events in one handler;

Private Sub Buttons_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click 

select Case sender.ToString

  Case "Button1"
    Button1.BackColor = Color.Red
    Button2.BackColor = Color.Yellow
    Button3.BackColor = Color.Yellow

  Case "Button2"
    Button1.BackColor = Color.Yellow
    Button2.BackColor = Color.Red
    Button3.BackColor = Color.Yellow

  Case "Button3"
    Button1.BackColor = Color.Yellow
    Button2.BackColor = Color.Yellow
    Button3.BackColor = Color.Red

End Sub

Sorry I don't have the platform to test it, but I guess it might guide you in the right direction.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM