[VB.NET] การสร้างเหตุการณ์เดียวกันให้กับปุ่มคำสั่ง (Button) แบบหลายตัว
http://www.g2gnet.com/webboard/images/vbnet/buttonarraylist.pngเนื่องจาก VB.NET ไม่มี Index ให้ใช้งานกับ Control ต่างๆ จึงทำให้ต้องประกาศเหตุการณ์ที่ทำซ้ำๆกันตลอด เรามีทางแก้ปัญหาได้ด้วยการนำเอา List ของ Control มาใช้งานแทน ...
หน้าจอออกแบบปุ่มคำสั่ง (Button)
http://www.g2gnet.com/webboard/images/vbnet/buttonarraydesign.png
มาดูโค้ดกันเถอะ ...
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim myButtons As List(Of Button) = New List(Of Button)
myButtons.AddRange({Button1, Button2, Button3, Button4, Button5, Button6, Button7, Button8, Button9, Button10})
'// OR
'myButtons.Add(Button1)
'myButtons.Add(Button2)
' ...................................
'myButtons.Add(Button10)
Dim i As Byte = 0
For Each btn In myButtons
With btn
.Text = i + 1
.Tag = i
End With
'// Force events handler.
AddHandler myButtons(i).Click, AddressOf ClickButton
i += 1
Next
End Sub
'// Click Button event, get the text of button
Public Sub ClickButton(ByVal sender As Object, ByVal e As System.EventArgs)
Dim btn As Button = sender
MessageBox.Show("คุณคลิ๊ก [" + btn.Text + "]" & vbCrLf & "Tag=" & btn.Tag)
End Sub
End Class
ขอบพระคุณคับ
หน้า:
[1]