Domanda

Ho un problema con l'indirizzamento di un pulsante.Ho molti pulsanti nel mio programma e ho una funzione che viene utilizzata da ogni pulsante. Sto ricevendo il nome dell'ultimo tasto cliccato con questo:

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

}
.

Quindi voglio cambiare il testo del pulsante:

ClickedButton.Text = "Whatever";
.

Ma non riesco ad usare clickedbutton come nome del pulsante.

Grazie in anticipo!

È stato utile?

Soluzione

Supponendo che questo sia un evento, puoi semplicemente fare qualcosa come questo

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

Altri suggerimenti

Se stai scrivendo questo nel tuo evento button_click,

Puoi ottenere il pulsante come questo:

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

Se hai la chiamata del pulsante cliccato nell'evento Click, è necessario disporre del mittente come argomento, che è possibile lanciare un pulsante e ottenere il nome del controllo.

Dato che si ha il riferimento del pulsante, è possibile impostare anche il testo del controllo.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top