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);
}