1

我创建了一个用户控件,里面有一些标签和图片。

然后,我将此用户控件添加到表单中。

在表单事件中,我设置了 UserControl_click 事件来引发函数。

我遇到的问题是,如果我点击 UserControl 背景,那里没有标签也没有图片,函数就会被提升。但是,如果我单击控件内的标签或图片,则该功能不会启动。

在单击用户控件中的控件时,我想要与单击控件背景时相同的行为。

4

2 回答 2

1

您的标签捕获点击事件。订阅他们的 Click 事件并调用您从 UserControl_click 调用的相同处理程序。

于 2013-02-26T15:08:48.133 回答
0

您必须在 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
于 2013-02-26T15:36:35.323 回答