在基类中激活没有触发?

时间:2011-11-17 13:17:29

标签: c# winforms inheritance

我有这样的事情:

public class WinformBase : Winform
{
     public WinformBase (){
         this.Activated += new System.EventHandler(this.MyTest1_Activated);
     }
     private void MyTest1_Activated(object sender, EventArgs e)
     {
        MyController.TopFormActivated(this);
     }
}

public class MyForm : WinformBase
{
      public MyForm (){
         this.Activated += new System.EventHandler(this.MyTest2_Activated);

      }
      private void MyTest2_Activated(object sender, EventArgs e)
      {
        MyController.TopFormActivated(this);
      }
}

问题是该事件仅在MyForm中触发而不在Winform基础中触发? 为什么会这样,我怎样才能在WinformBase中触发事件?

1 个答案:

答案 0 :(得分:5)

这是我解决问题的方法:

public class WinformBase : Winform
{
     public WinformBase (){
     }

    protected override void OnActivated(EventArgs e)
    {
        base.OnActivated(e);
        Controller.MyMethod();
    }

}

public class MyForm : WinformBase
{
      public MyForm (){
      }
}