Кнопка адреса C# с использованием строки

У меня проблема с обращением к кнопке. У меня есть много кнопок в моей программе, и у меня есть функция, которая используется каждой кнопкой. Я получаю название последней нажатой кнопки с этим:

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

}

Затем я хочу изменить текст кнопки:

ClickedButton.Text = "Whatever";

Но я не могу использовать ClickedButton в качестве названия кнопки.

Заранее спасибо!

3 ответа

Решение

Предполагая, что это событие, вы можете просто сделать что-то вроде этого

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

Если вы пишете это в своем button_click событие,

Вы можете получить кнопку, как это:

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

Если вы вызываете нажатие кнопки в событии Click, у вас должен быть отправитель в качестве аргумента, который вы можете привести к Button и получить имя элемента управления.

Поскольку у вас есть ссылка на кнопку, вы можете также установить текст элемента управления.

protected void btnTest_Click(object sender, EventArgs e)
{
    Button b = sender as Button;
    if ((b != null) && (b.Name == "btnTest"))
    {
         b.Text = "yay";
    }
}
Другие вопросы по тегам