1

我来问这个问题。例如,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?
}

我怎么解决这个问题?(我认为这可能就像我们捕获异常然后再次将其抛出到其他地方捕获它?)

4

2 回答 2

1

简单地:

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

然后在外面处理MouseClick事件。(我将代码放在 Vb.Net 中,因为您在问题中标记了它,但很容易转换它)。

于 2013-02-26T08:17:56.603 回答
1

试试这个:

private void UserControl1_Click(object sender, MouseEventArgs e)
{
    // Raise MouseClick event for this control
    base.OnMouseClick(e);
}
于 2013-02-26T13:11:52.247 回答