Frage : Zollkontrolle, die ein Ereignis parent Form mitteilt

Ich habe das UI für eine Steuerung kodiert (niedrige Kategorie: UserControl) und muss jetzt ein Ereignis zur Elternteilform mitteilen.  Offensichtlich, weil die Steuerung in den verschiedenen Formen verwendet werden könnte, kann ich den Namen der Form nicht im Voraus kennen - so wie erzeuge ich irgendein Ereignis (oder Mitteilung), führe dem Elternteil dieses und lasse das Elternteil auf dieses reagieren?


(in C++ würde ich gerade meine eigene Mitteilung verursachen und PostMessage verwenden, um mich mit einem Elternteilfenster zu verständigen),

Antwort : Zollkontrolle, die ein Ereignis parent Form mitteilt

Sie müssen Ihr eigenes Ereignis definieren und die Elternteilform zu ihr unterzeichnen lassen. Einfaches Beispiel using StandardEventHandler (Sie müssen Ihre eigene Delegiert-/eventargskategorie definieren, wenn Sie kundenspezifische Informationen mit Ihrem Ereignis vermitteln möchten):
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:
//-Benutzersteuerung
    allgemeine teilweise Kategorie MyUserControl: UserControl
    {
        allgemeines Ereignis EventHandler SomethingHappened;

        allgemeines MyUserControl ()
        {
            InitializeComponent ();
        }

        private Lücke button1_Click (Gegenstandabsender, EventArgs e)
        {
            OnSomethingHappened ();
        }

        geschütztes leeres OnSomethingHappened ()
        {
            wenn (SomethingHappened! = Null)
                SomethingHappened (dieses, neues EventArgs ());
        }
    }


'/Elternteilform
private Lücke Form1_Load (Gegenstandabsender, EventArgs e)
{
    myUserControl1.SomethingHappened += neues EventHandler (myUserControl1_SomethingHappened);
}

leeres myUserControl1_SomethingHappened (Gegenstandabsender, EventArgs e)
{
    MessageBox.Show („etwas geschah“);
}
Weitere Lösungen  
 
programming4us programming4us