Zmiana Button.Text po jego kliknięciu

0

Pilne,
Jak w tytule, nie używając nazwy Button1. Jak to zrobić?
protected void Button1_Click(object sender, EventArgs e)
{
Button1.Text = "kurcze"; // tak jest ok
???????.Text ="HELP!"; // a potrzebuję jakoś tak, tzn bez bezpośredniej nazwy własnej
}

Pięknie dziękuje.
2

Przycisk, który wcisnąłeś masz w parametrze sender, musisz więc go zrzutować na Button i zrobić, co chcesz.

0

Zadziałało:
(sender as Button).Text = "JUŻ WIEM!";

... a czy jest jeszcze inny zapis tego samego? No... tak pytam.
Dzięki
mm
0

Jest rzutowanie na przykład.

1
mimirus napisał(a):

Zadziałało:
(sender as Button).Text = "JUŻ WIEM!";

... a czy jest jeszcze inny zapis tego samego? No... tak pytam.
> Dzięki
> mm

Taki zapis jest bez sensu. Używanie `as` ma sens, gdy nie jesteśmy pewni, czy obiekt jest potrzebnego nam typ, zaś po użyciu tego operatora sprawdzamy, czy wynik jego działania jest `null`. W tym kodzie, gdyby sender nie był Buttonem, to miałbyś brzydki wyjątek NullReferenceException.

Prawidłowe użycie `as` wygląda tak:
```csharp
Button b = jakiśObiekt as Button;
if (b != null)
{
    // Tu zrobimy coś z Buttonem
}
 

Ale w tej sytuacji jesteś pewien, że sender jest typu Button (bo to zdarzenie jest podpięte właśnie do przycisku), więc powinieneś użyć zwykłego rzutowania:
((Button)sender).Text = "JUŻ WIEM!";

1 użytkowników online, w tym zalogowanych: 0, gości: 1