Активированный в базовом классе не срабатывает? - PullRequest
5 голосов
/ 17 ноября 2011

У меня есть что-то вроде этого:

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 Ответ

5 голосов
/ 17 ноября 2011

Это мое решение проблемы:

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

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

}

public class MyForm : WinformBase
{
      public MyForm (){
      }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...