C# 如何在UserControl内部引发事件以在另一个项目的外部处理它?

C# 如何在UserControl内部引发事件以在另一个项目的外部处理它?,c#,vb.net,winforms,user-controls,controls,C#,Vb.net,Winforms,User Controls,Controls,我追求这个。例如,在我的CustomControl中,我想处理所有内部控件的MouseClick事件,然后为CustomControl引发一个事件,这样我就可以在使用该控件的每个项目中处理它 private void UserControl1_Load(object sender, EventArgs e) { foreach (var control in Controls) { ((Control)control).MouseClick += UserCont

我追求这个。例如,在我的
CustomControl
中,我想处理所有内部控件的
MouseClick
事件,然后为CustomControl引发一个事件,这样我就可以在使用该控件的每个项目中处理它

private void UserControl1_Load(object sender, EventArgs e)
{
    foreach (var control in Controls)
    {
        ((Control)control).MouseClick += UserControl1_Click;

    }
}

private void UserControl1_Click(object sender, MouseEventArgs e)
{
    // here I want to raise a MouseClick event for UserControl1?
}
我怎样才能解决这个问题?(我认为这可能就像我们捕获一个异常,然后再次抛出它到其他地方捕获它一样?

简单地说:

Public Event MouseClick(ByVal sender As Object, ByVal e As MouseEventArgs)

Private Sub UserControl1_Click (object sender, MouseEventArgs e)
    RaiseEvent MouseClick(sender, e)
End Sub
然后在外部处理
鼠标单击
事件。(我将代码放在Vb.Net中,因为您在问题中标记了它,但很容易将其转换)。

尝试以下方法:

private void UserControl1_Click(object sender, MouseEventArgs e)
{
    // Raise MouseClick event for this control
    base.OnMouseClick(e);
}