J'ai une application WinForms. Ma classe dérivée de ma forme a une classe dérivée d'UserControl.
Je mets simplement plusieurs contrôles dans un userercontrol pour simplifier la réutilisation. L'événement code> Charger code> de USERCONTROL code> n'est pas tiré. Dois-je mettre des biens? P>
3 Réponses :
Il n'y aurait pas de propriétés spéciales que vous devez définir pour les événements d'UserControl à tirer. Vous avez l'une des 2 façons de vous abonner à l'événement. Dans les propriétés (grille de propriété) Sélectionnez la liste des événements ... Double-cliquez sur la propriété Charger. Toutes les pièces de code nécessaires seront mises en place et votre curseur vous attendra à la méthode appropriée.
La deuxième méthode est abonnée à l'événement comme: P>
public MyMainForm( ) { InitializeComponents(); myUserControl.Load += new System.EventHandler(myUserControl_Load); } void myUserControl_Load(object sender, EventArgs e) { MessageBox.Show(((UserControl)sender).Name + " is loaded."); }
Je fais exactement ce que vous codez ici, mais cela ne fonctionne pas du tout. Si je remplace plutôt le surcharge, ça marche ...
Eh bien ... il semble que MSDN connaisse mieux, alors j'irais aussi avec ça.
la charge = doit apparaître avant l'initializecomonent ()
Merci @ashley, ça marche parfaitement. Avez-vous une idée des raisons pour lesquelles l'événement surload ne fonctionne pas dans certains cas et lorsque vous recherchez une nouvelle utilisation, cela fonctionne à chaque fois?
Une des raisons de l'événement de chargement pour arrêter de tirer est lorsque vous avez un parent de votre contrôle qui fait quelque chose comme ça vous devez toujours vous assurer de faire cela p>
S'il vous plaît montrer le (contour de) votre code.
Avez-vous été abonné à des événements surchargés de chaque UserControl de votre classe?