我创建了一个用户控件,里面有一些标签和图片。
然后,我将此用户控件添加到表单中。
在表单事件中,我设置了 UserControl_click 事件来引发函数。
我遇到的问题是,如果我点击 UserControl 背景,那里没有标签也没有图片,函数就会被提升。但是,如果我单击控件内的标签或图片,则该功能不会启动。
在单击用户控件中的控件时,我想要与单击控件背景时相同的行为。
您的标签捕获点击事件。订阅他们的 Click 事件并调用您从 UserControl_click 调用的相同处理程序。
您必须在 UserControl 内的每个控件单击事件上添加添加功能:
Public Event ControlClick(sender As Object, e As EventArgs)
Private Sub uc1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For each elem As Control in Me.Controls
AddHandler elem.Click, AddressOf RaiseClick
Next
End Sub
Private Sub RaiseClick(sender As Object, e As EventArgs)
RaiseEvent ControlClick(sender, e)
End Sub
然后在外面抓住这两个事件:
Public Sub UserControl_click(sender As Object, e As EventArgs) _
Handles UserControl1.Click, UserControl1.ControlClick
'...
End Sub