manuellement le tir de l'événement en c#
je veux mettre le feu à un événement manuellement à l'aide de c#. Par exemple, disons que si je veux tirer un Form_closing cas d'Une Forme de la Forme B. Comment le faire ??
Après l'obtention de certains commentaires. Je pense que j'ai besoin de plus d'explications sur ce.
Depuis mon Formulaire Une référence à un .dll, ce qui crée un custom de la barre des tâches sur le bureau,
Il y a une situation pour moi de fermer la que la coutume de la barre des tâches de Forme B.
j'ai déjà essayé FormA.Close() de la Forme B. quand je fais cela, l' .dll est déchargé du domaine de l'application et de ce fait l'espace occupé par la coutume de la barre des tâches est bloqué.
Mais ce n'est pas le cas lorsque je clique sur le bouton fermer dans la barre des tâches. lorsque je fais ceci, l'espace est libéré.
C'est la raison pour laquelle je tiens à feu à la clôture de l'événement de la Forme d'Un manuellement à partir de la Forme B qui va résoudre mon problème.
Grâce.
OriginalL'auteur Anuya | 2009-09-04
Vous devez vous connecter pour publier un commentaire.
Nous avons fait le suivre dans un projet:
Il y avait un GlobalNotifier classe, qui définit les événements que nous voulions utiliser dans les différents modules de l'application, comme ce
Ensuite, vous pouvez déclencher cet événement n'importe où lorsque vous avez besoin pour faire le reste de l'application de savoir que l'environnement a changé, comme ce
Et aussi vous avez pu souscrire à cet événement où vous voulez être informé sur le fait que l'environnement a changé.
Donc, chaque fois que vous avez modifié l'environnement, vous avez évoqué l'événement, et tout le monde qui a besoin de savoir à ce sujet et d'effectuer certaines actions, a été notifié.
Peut être similaire à ce que vous devez atteindre.
Aussi, si vous avez besoin de passer des paramètres, vous pouvez définir l'événement de la manière que vous voulez, en gros -
OriginalL'auteur Evgeny
Que vous appelez le
OnFormClosing()
méthode de la classe de Formulaire. Vous pouvez faire cela avec toutes les événement qui a un jumeléOn...()
méthode.Vous pouvez exposer le...() dans une méthode publique, mais que Joël a dit, si vous voulez augmenter manuellement la manifestation sans réellement Formulaire appelant.Close(), vous êtes probablement fait quelque chose de mal.
donné quelques explications pour mon scénario.
OriginalL'auteur
Il me semble, de vos commentaires, comme vous ne voulez pas élever un événement de la fenêtre de l'autre; vous voulez juste poignée un événement de la fenêtre de l'autre.
Oui, vous pouvez le faire.
FormB
doit avoir une référence àFormA
. Il ya plusieurs façons dont vous pouvez faire cette; un moyen facile est d'avoir unFormA
type de propriété dans votre FormB classe, comme ceci:Vous définissez cette propriété à votre instance de
FormA
, et puis vous ajoutez le gestionnaire d'événement que vous avez décrit dans les commentaires.Vous n'avez pas à utiliser
FormA
que le type de votre propriété; n'importe quelle forme a leFormClosing
de l'événement, de sorte que vous pouvez simplement utiliser le Formulaire comme type si vous le souhaitez.OriginalL'auteur Ryan Lundy
Fermez le formulaire. Qui va déclencher l'événement. Si vous souhaitez augmenter l'événement séparément à partir de la fermeture du formulaire, vous faites quelque chose de mal; déplacer que le code d'une méthode distincte que vous pouvez appeler à partir de l'événement et de FormB.
À partir de Visual Studio 2005 (.Net 2.0), des formes automatiques sont les instances par défaut. Il semble que c'est ce que vous utilisez. Vous devez savoir que cette fonctionnalité existe principalement pour assurer la compatibilité ascendante avec VB6. Vous êtes vraiment mieux la création et l'utilisation d'une nouvelle instance de la forme. Lorsque vous faites cela, vous devez simplement être en mesure d'appeler le
.Close()
méthode sur une instance de la sans il du domaine de l'application de clôture.Si vous voulez ré-utiliser cet espace, vous pouvez également essayer simplement
.Hide()
-ing la forme plutôt que de le fermer.donné quelques explications pour mon scénario.
Peut-être que vous avez votre terminologie mal. Ça sonne un peu comme vous voulez vous abonner ou écouter pour l'événement. Sensibilisation cela signifie quelque chose de différent.
Bon, de lire votre post, et je pense que je sais de votre problème maintenant.
OriginalL'auteur Joel Coehoorn