Вопрос

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

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";
    }
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top