La maîtrise de nom pour un événement
Dans mon C# Windows Forms formulaire, j'ai quelques boutons qui sont générés dynamiquement. Je lui ai donné la méthode suivante sur l'événement click. Est-il possible d'obtenir le nom du bouton à partir de laquelle l'événement est déclenché?
private void btnBrowsDoc_Click(object sender, EventArgs e)
{
try
{
if (openFileDialog1.ShowDialog().Equals(DialogResult.OK))
{
gbxDocument.Controls["txtDocument" + count].Text =
openFileDialog1.FileName;
}
else
{
return;
}
}
catch (Exception ex)
{
//handle the exception
}
}
- Pourquoi le
try...catch
? - C'est généralement un assez mauvais style de programmation, surtout si vous n'êtes pas d'évaluer l'exception interceptée. - Uwe Keim : suis-gérer l'exception à l'aide d'un fichier texte... je viens de supprimer cette ligne de code, tout en ajoutant ici...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
sender
argument. C'est le Contrôle (le bouton dans ce cas) qui a soulevé l'événement click:N. B.: Dans le cas où vous avez souscrit d'autres contrôles (par exemple, panneaux, etc.) pour le même gestionnaire d'événements, vous pouvez vérifier si l'expéditeur est un bouton à l'aide de la
as
opérateur:as
, mais c'est une question de préférenceLe premier argument de la gestionnaire d'événements, "
object sender
", contient une référence d'un objet/de contrôle qui a soulevé/a tiré un événement.