Кнопка адреса C# с использованием строки
-
11-12-2019 - |
Вопрос
У меня проблема с адресацией кнопки.В моей программе много кнопок, и у меня есть функция, которая используется каждой кнопкой.Я получаю имя последней нажатой кнопки следующим образом:
foreach (Control t in this.Controls)
{
if (t.Focused)
{
ClickedButton = t.Name;
}
}
Затем я хочу изменить текст кнопки:
ClickedButton.Text = "Whatever";
Но я не могу использовать ClickedButton в качестве имени кнопки.
Заранее спасибо!
Решение
Предполагая, что это событие, вы можете просто сделать что-то вроде этого
Button btn = (Button)sender;
btn.Text = "Whatever";
. Другие советы
Если вы пишете это в своем button_click
событие,
Вы можете получить кнопку следующим образом:
Button BTN = sender as Button;
BTN.Text = "This Button Has Been Clicked!";
Если у вас нажата кнопка нажатия, вызовите на событие Click, вы должны иметь отправителя в качестве аргумента, который вы можете отбрасывать кнопку и получить имя элемента управления.
Поскольку у вас есть ссылка на кнопку, вы можете также установить текст управления.
protected void btnTest_Click(object sender, EventArgs e)
{
Button b = sender as Button;
if ((b != null) && (b.Name == "btnTest"))
{
b.Text = "yay";
}
}
.