Changement de nom du bouton et la gestion des événements au moment de l'exécution
Dans mon winform, dans le concepteur.cs section du formulaire, j'ai
this.Button1.Text = "&Click";
this.Button1.Click += new System.EventHandler(this.Button1_Click);
en forme.cs
private void Button1_Click(object sender, System.EventArgs e)
{
//Code goes here.
}
Dans une partie du formulaire, j'ai un treeview et lorsque que treeview contenu élargi, j'ai besoin de renommer le bouton ci-dessus et de fil d'un autre événement
Button1.Name = "ButtonTest";
ButtonTest.Click += new System.EventHandler(this.ButtonTest_Click);
Cependant d'échec en disant ButtonTest n'est pas trouvé, comment puis-je dynamicall modifier le nom du bouton et appeler un autre événement click méthode?
private void ButtonTest_Click(object sender, System.EventArgs e)
{
//Code goes here.
}
Une fois que cela s'appelle ButtonTest_Click, j'ai besoin de le renommer retour à Button1, toutes les pensées?
OriginalL'auteur Sharpeye500 | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
Button1
se réfère à un nom de variable. La variable pointe vers une instance de laButton
type qui a unName
de la propriété. Si vous modifiez la valeur de laName
de la propriété, il ne change pas le nom de la variable. Vous aurez toujours besoin de se référer à la touche commebutton1
. En fait, il n'a vraiment rien à modifier la valeur du boutonName
de la propriété. LeName
bien que vraiment, il existe uniquement à l'aide le concepteur Windows Forms.Si vous souhaitez modifier un gestionnaire d'événements à partir d'une méthode à l'autre, vous devez d'abord annuler le gestionnaire d'origine et puis abonnez-vous le nouveau maître. Il suffit de changer votre code:
Vous devez supprimer l'ancien Gestionnaire d'abord aide -= directive stackoverflow.com/questions/1307607/removing-event-handlers
Au départ, j'avais omis de mentionner que vous devez d'abord unsubcribe le gestionnaire d'origine. J'ai édité la réponse pour en tenir compte.
OriginalL'auteur Dan
Cela peut être fait de plusieurs façons:
Depuis le menu: Edit -> Refactor -> Renommer
Par Menu contextuel sur le nom de la Méthode: Refactor -> Renommer
Placez le curseur sur le nom de la Méthode et du type Alt + Maj + F10, puis sélectionnez Renommer
Placez le curseur sur le nom de la Méthode et appuyez sur la touche F2
OriginalL'auteur user7992841