当点击内部控件时,引发用户控件点击

本文关键字:控件 用户 内部 | 更新日期: 2023-09-27 18:01:07

我创建了一个用户控件,其中包含一些标签和图片。

然后,我把这个用户控件添加到一个表单中

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

我遇到的问题是,如果我单击UserControl后台,那里既没有标签也没有图片,就会引发函数。但是,如果我点击控件内的标签或图片,该函数不会上升。

我希望在用户控件内单击控件时的行为与单击控件背景时的行为相同。

当点击内部控件时,引发用户控件点击

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

您必须在UserControl:中的每个控件点击事件上添加addthefunction

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