0

我对 C#、Winforms 和 Compact Framework 还很陌生,但我仍然没有完全理解它的事件系统。

我正在寻找一种将单个事件处理程序添加到我的最顶层表单的方法,无论它们是什么类型,当任何孩子被(重新)绘制(或者甚至更好,在它们被绘制之后)时都会调用它。同样重要的是我不需要为孩子们​​自己添加任何代码。

在伪代码中它可能看起来像这样

TopMostForm {
    anyChildWasReDrawn() {
      dostuff();
    }
}

有没有办法做到这一点?

4

1 回答 1

1

研究处理您孩子的 Paint 处理程序。例如,在最顶层的表单中,您将执行以下操作:

// each child will call the same method when any of them are redrawn
myChild1.Paint += myChildren_Paint;
myChild2.Paint += myChildren_Paint;
mySomeOtherChild.Paint += myChildren_Paint

实际的处理程序本身看起来像这样:

void myChildren_Paint(object sender, PaintEventArgs e)
{
    dostuff();
}

请注意,每个孩子都指向这个处理程序。

于 2012-04-05T18:48:34.633 回答