1

私はこの質問の後に来ます。CustomControlたとえば、すべての内部コントロールのイベントを処理してから、MouseClickcustomControlのイベントを発生させたいので、コントロールを使用するすべてのプロジェクトでそれを処理できます。

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 に答える