Pulsante C # utilizzando una stringa
-
11-12-2019 - |
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!
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";
}
}
.