Как организовать мигающий индикатор события? - Visual Basic .NET
Формулировка задачи:
В цикле таймера периодически происходит очень короткое событие. Хотелось бы в этот момент видеть на форме вспыхивающий на короткое время "светодиод". Использование другого таймера для организации длительности вспышки думаю не очень хороший способ. Наверняка кто-то решал подобную задачу, пожалуйста, поделитесь.
null
Решение задачи: «Как организовать мигающий индикатор события?»
textual
Листинг программы
Public Class Form1
Dim tmr As New Timer With {.Interval = 100}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler tmr.Tick, AddressOf Tick
End Sub
Private Sub IndicatorFlash(ByVal fLight As Boolean)
Dim gr As System.Drawing.Graphics = Me.CreateGraphics
Dim br As SolidBrush
If fLight Then 'зажигаем индикатор
br = New SolidBrush(Color.Red)
Else 'гасим индикатор
br = New SolidBrush(Me.BackColor)
End If
Dim rc As New Rectangle(0, 0, 20, 20)
gr.FillEllipse(br, rc)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
IndicatorFlash(True)
tmr.Start()
End Sub
Private Sub Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)
'гасим индикатор
IndicatorFlash(False)
tmr.Stop()
End Sub
End Class