16,554
社区成员
发帖
与我相关
我的任务
分享
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 1 To 5
Dim lbl As Label = New Label
lbl.Name = "Label " & CStr(i)
lbl.Text = "Label " & CStr(i)
lbl.BackColor = Color.Yellow
lbl.Top = 90
lbl.Left = 100 * i
lbl.Width = 90
lbl.Height = 100
lbl.Font = New Font(lbl.Font.Name = "Comic Sans", 18, lbl.Font.Style = FontStyle.Bold, lbl.Font.Unit = GraphicsUnit.Pixel)
Me.Controls.Add(lbl)
Next
AddGenericClickHandler(Me, AddressOf Label1_DoubleClick)
End Sub
Private Sub AddGenericClickHandler(ByVal Parent As Control, ByVal Handler As EventHandler)
For Each ctl As Control In Parent.Controls
AddHandler ctl.DoubleClick, Handler
Next
AddHandler Parent.DoubleClick, Handler
End Sub
Private Sub Label1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.DoubleClick
If TypeOf sender Is Label Then
Dim pos As Point = sender.Parent.PointToClient(Control.MousePosition)
For Each ctl As Control In sender.Parent.Controls
If TypeOf ctl Is Label And New Rectangle(ctl.Location, ctl.Size).Contains(pos) Then
MsgBox(ctl.Name)
End If
Next
End If
End Sub
End Class
Dim lbl As Label = DirectCast(sender, Label)
Private Sub Label1_Click(sender As System.Object, e As System.EventArgs)
dim c as control = sender
dim i as string= c.Name.Substring(5)
'i就是第几个
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
....
....
AddHandler label1.Click, AddressOf Label1_Click '单击事件
AddHandler label1.DoubleClick, AddressOf Label1_DoubleClick '双击事件
AddHandler label1.TextChanged, AddressOf Label1_TextChanged 'TextChanged事件
End Sub
'单击事件
Private Sub Label1_Click(sender As System.Object, e As System.EventArgs)
End Sub
'双击事件
Private Sub Label1_DoubleClick(sender As System.Object, e As System.EventArgs)
End Sub
'TextChanged事件
Private Sub Label1_TextChanged(sender As System.Object, e As System.EventArgs)
End Sub