Question

J'ai un Problème avec l'adressage d'un bouton.J'ai beaucoup de boutons dans mon programme et j'ai une fonction qui est utilisée par chaque bouton.Je reçois le nom de la dernière cliqué bouton avec ceci:

foreach (Control t in this.Controls)
{
    if (t.Focused)
    {
        ClickedButton = t.Name;
    }

}

Alors je veux changer le Texte du bouton:

ClickedButton.Text = "Whatever";

Mais je ne peux pas utiliser ClickedButton comme le nom du bouton.

Je vous remercie à l'avance!

Était-ce utile?

La solution

en supposant que c'est un événement, vous pouvez simplement faire quelque chose comme ça

Button btn = (Button)sender;
btn.Text = "Whatever";

Autres conseils

Si vous écrivez dans votre button_click l'événement,

Vous pouvez Obtenir le bouton comme ceci :

Button BTN = sender as Button;
BTN.Text = "This Button Has Been Clicked!";

Si vous avez l'appel de bouton cliqué dans l'événement de clic, vous devez avoir l'expéditeur sous forme d'argument, que vous pouvez lancer sur un bouton et obtenir le nom du contrôle.

Puisque vous avez la référence du bouton, vous pouvez alors définir le texte du contrôle.

protected void btnTest_Click(object sender, EventArgs e)
{
    Button b = sender as Button;
    if ((b != null) && (b.Name == "btnTest"))
    {
         b.Text = "yay";
    }
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top