appel d'un gestionnaire d'événement dans un autre gestionnaire d'événement?
Voici le petit code d'exemple:
private void txtbox1_DoubleClick(object sender, EventArgs e)
{
button1_Click(object sender, EventArgs e); //can I call button1 event handler?
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(txtbox1.Text);
}
Je me demande si il serait d'accord pour le code ci-dessus?
Vous pourriez, mais voulez-vous vraiment? Au lieu de cela, vous pourriez facteur le code commun et délégué de l'gestionnaires. Je crois qu'il est beaucoup plus propre. Désolé de ne pas voir que la réponse exacte ci-dessous - le faire!
OriginalL'auteur woodykiddy | 2011-08-25
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire - bien que le code que vous fournissez ne peut pas être compilé. Il devrait ressembler à ceci:
Mais pour de meilleures pratiques et la lisibilité du code, vous êtes probablement mieux de faire cela, surtout que vous n'êtes pas faire usage de
sender
ete
:sender
ete
utilisés dans les deux gestionnaires d'événements faisant référence à la même chose?sans l'expéditeur pour txtbox1_DoubleClick est txtbox1 et l'expéditeur pour button1_Click sera button1 si les gestionnaires d'événements ont été câblé en standard en utilisant le Concepteur Windows Form
OriginalL'auteur Roy Goode
Oui, vous pouvez le faire; un gestionnaire d'événement est juste une autre méthode.
Toutefois, il pourrait être intéressant de créer une nouvelle méthode qui affiche la boîte de message, et ayant à la fois des gestionnaires d'événements Click appel:
Pas d'effets secondaires, vous êtes juste à l'appel d'une méthode comme les autres, vraiment.
OriginalL'auteur George Duckett
Un gestionnaire d'événement n'est rien de plus qu'une méthode, de sorte que vous pouvez l'appeler comme les autres.
OriginalL'auteur RoccoC5