بله، میتوانید از یک سابروتین (subroutine) استفاده کنید تا نام دکمه را دریافت و عملیات مربوط به آن دکمه را انجام دهید. در این صورت، نیازی به ایجاد یک تایمر مجزا برای هر دکمه نخواهید داشت.
Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
Dim button As Button = DirectCast(sender, Button)
button.Text = "OK"
Dim buttonName As String = button.Name
Dim timer As New Timer()
timer.Interval = 500 ' 500 میلی ثانیه (نیم ثانیه)
AddHandler timer.Tick, Sub(s, args)
button.Text = buttonName
timer.Stop()
timer.Dispose()
End Sub
timer.Start()
' دستورات مربوط به عملیاتی که بعد از کلیک دکمه انجام میشود
End Sub