点击内部控件时提高用户控制点击

时间:2013-02-26 15:05:27

标签: c# .net vb.net

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

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

在表格事件中,我设置了UserControl_click事件以提升功能。

我遇到的问题是,如果我点击UserControl背景,那里没有标签或图片,则会引发该功能。但是,如果我点击控件内的标签或图片,则该功能不会升高。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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