Cuestión : Control de encargo que comunica un acontecimiento para parent la forma

He cifrado el UI para un control (clase baja: UserControl) y ahora necesita comunicar un acontecimiento a la forma del padre.  ¿Obviamente porque el control se podría utilizar en diversas formas no puedo saber por adelantado el nombre de la forma - tan cómo genero un cierto acontecimiento (o el mensaje), paso esto al padre y tengo el padre responder a esto?


(en C++ crearía mi propio mensaje y acabo de utilizo PostMessage para comunicar con una ventana del padre)
class= del

Respuesta : Control de encargo que comunica un acontecimiento para parent la forma

Usted necesita definir su propio acontecimiento y hacer que la forma del padre suscriba a ella. Ejemplo simple usar EventHandler estándar (usted necesitará definir su propia clase del delegado/de los eventargs si usted quiere pasar la información de encargo con su acontecimiento):
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
control del usuario de //
    clase parcial pública MyUserControl: UserControl
    {
        acontecimiento público EventHandler SomethingHappened;

        MyUserControl público ()
        {
            InitializeComponent ();
        }

        vacío privado button1_Click (remitente del objeto, EventArgs e)
        {
            OnSomethingHappened ();
        }

        OnSomethingHappened vacío protegido ()
        {
            ¡si (SomethingHappened! = falta de información)
                SomethingHappened (éste, nuevo EventArgs ());
        }
    }


'/forma del padre
vacío privado Form1_Load (remitente del objeto, EventArgs e)
{
    myUserControl1.SomethingHappened += nuevo EventHandler (myUserControl1_SomethingHappened);
}

myUserControl1_SomethingHappened vacío (remitente del objeto, EventArgs e)
{
    MessageBox.Show (“algo sucedió”);
}
Otras soluciones  
 
programming4us programming4us