对于大学,我正在创建一个引力场模拟器,其中显示两个质量以及它们将经历的重力的大小和方向。对于质量体,我使用动态创建的椭圆形,这些椭圆形每个都有一个标签,显示质量。这些椭圆形和标签存储在一个列表中。
我需要能够拖放这些主体。对于ovalshapes,我正在使用If OvalShape.ContainsFocus
,但由于标签将位于这些椭圆形的顶部,我需要某种方式来测试鼠标是否在标签上。我尝试过使用事件处理程序,但是我收到错误"点击不是system.collections.listarray"对于此代码AddHandler labelArray.Click, AddressOf Me.labelArray_Click
答案 0 :(得分:1)
您需要将事件处理程序添加到数组中的每个标签
For Each l As Label In labelArray
AddHandler l.Click, AddressOf myClickHandler
Next
然后在处理函数中:
Private Sub myClickHandler(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim clickedLabel As Label = DirectCast(sender, Label) ' Cast the sending object into a Label object
' then do whatever you want with the label such as get it's text and show it in a message box:
MessageBox.Show("Label text Clicked was: " & clickedLabel.Text)
End Sub