Puedes hacerte un componente con button y añadirle un System.Timers.Timer como variable global:
private withevents t as new system.timers.timer(1000) <-intervalo milisegundos
Luego añades el código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Static onoff As Boolean
onoff = Not onoff
t.Enabled = True
If onoff Then t.Start() Else t.Stop()
End Sub
y luego para que cambie de color cada lo que hallas puesto en el intervalo:
Private Sub t_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles t.Elapsed
Static onOff As Boolean
onOff = Not onOff
If onOff Then
Button1.BackColor = System.Drawing.Color.Blue
Else
Button1.BackColor = System.Drawing.Color.Gray
End If
t.Start()
End Sub
Lo de hacerte un componente solo lo digo como sugerencia.Los colores en cambio no son una sugerencia. Son una prohibición!!! Quedan horribles :p
Suerte!