Fråga : Beställnings- kontrollera att meddela en händelse för att uppfostra bildar

Jag har kodifierat UIEN för en kontrollera (basera klassificerar: UserControl) och behöver nu att meddela en händelse till föräldern bildar.  , därför att självfallet kontrollera kunde användas i olikt, bildar mig kan inte veta i förskott det känt av bilda - så hur jag frambringar någon händelse (eller meddelandet), passerar denna till föräldern och har föräldern att reagera till denna?


(i C++ som jag skulle skapa mitt egna meddelande och använd precis, PostMessage för att meddela med ett förälderfönster),
" klar "

Svar : Beställnings- kontrollera att meddela en händelse för att uppfostra bildar

Du behöver att definiera din egna händelse, och att ha föräldern att bilda prenumerera till den. Enkelt exempel using standarda EventHandler (du ska behov att definiera dina egna delegat/eventargs klassificerar, om du önskar att passera beställnings- information med din händelse):
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:
den // användaren kontrollerar
    offentligt partiskt klassificerar MyUserControl: UserControl
    {
        offentlig händelse EventHandler SomethingHappened;

        offentliga MyUserControl ()
        {
            InitializeComponent ();
        }

        privat utan laga kraft button1_Click (anmärka avsändaren, EventArgs e),
        {
            OnSomethingHappened ();
        }

        skyddade utan laga kraft OnSomethingHappened ()
        {
            om (SomethingHappened! = ogiltigt)
                SomethingHappened (denna, nya EventArgs ());
        }
    }


'/förälder bildar
privat utan laga kraft Form1_Load (anmärka avsändaren, EventArgs e),
{
    myUserControl1.SomethingHappened += nya EventHandler (myUserControl1_SomethingHappened);
}

utan laga kraft myUserControl1_SomethingHappened (anmärka avsändaren, EventArgs e),
{
    MessageBox.Show (”något händde”);
}
Andra lösningar  
 
programming4us programming4us