Question : Commande faite sur commande communiquant un événement pour parent la forme

J'ai codé l'UI pour une commande (classe basse : UserControl) et doit maintenant communiquer un événement à la forme de parent.  Est-ce qu'évidemment parce que la commande pourrait être employée dans différentes formes je ne peux pas savoir à l'avance le nom de la forme - tellement comment je produis d'un certain événement (ou d'un message), passe ceci au parent et fais répondre au parent à ceci ?


(dans C++ je juste créerais mon propre message et avais l'habitude PostMessage pour communiquer avec une fenêtre de parent)
class= de

Réponse : Commande faite sur commande communiquant un événement pour parent la forme

Vous devez définir votre propre événement et faire souscrire la forme de parent à elle. Exemple simple using EventHandler standard (vous devrez définir votre propre classe de délégué/eventargs si vous voulez passer l'information faite sur commande avec votre événement) :
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 :
commande d'utilisateur de //
    classe partielle publique MyUserControl : UserControl
    {
        événement public EventHandler SomethingHappened ;

        MyUserControl public ()
        {
            InitializeComponent () ;
        }

        vide privé button1_Click (expéditeur d'objet, EventArgs e)
        {
            OnSomethingHappened () ;
        }

        OnSomethingHappened vide protégé ()
        {
            si (SomethingHappened ! = nulle)
                SomethingHappened (ceci, nouvel EventArgs ());
        }
    }


'/forme de parent
vide privé Form1_Load (expéditeur d'objet, EventArgs e)
{
    myUserControl1.SomethingHappened += nouvel EventHandler (myUserControl1_SomethingHappened) ;
}

myUserControl1_SomethingHappened vide (expéditeur d'objet, EventArgs e)
{
    MessageBox.Show (« quelque chose s'est produite ») ;
}
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us