2011-11-17 16 views
5

tengo algo como esto:Activado en la clase de base no activada?

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); 
     } 
} 

El problema es que el evento sólo se activa en MiFormulario y no en la base Winform?
¿Por qué es así y cómo puedo activar el evento en WinformBase también?

Respuesta

5

Esta es mi solución al problema:

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

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

} 

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