Кнопка адреса 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";
}
}