Pobranie nazwy kontroli wywolujacej zdarzenie

0

Witam, jak moge pobrac nazwe kontrolki ktora wywoluje zdarzenie. Chodzi mi o cos takiego jak mam:

this.Q1_01.Click += new System.EventHandler(this.WyborBramki_Click);

to pozniej w funkcji obslugujacej to zdarzenie jak pobrac nazwe kontrolki:

private void WyborBramki_Click(object sender, EventArgs e)
        {
            
            //nazwa kontrolki ktora wywoluje zdarzenie
        }
0

Po co Ci nazwa? sender to ta kontrolka wlasnie.

0
johny_bravo napisał(a)

Po co Ci nazwa? sender to ta kontrolka wlasnie.

Nazwa może się przydać np. wtedy gdy metoda jest handlerem dla zdarzeń więcej niż jednej kontrolki.
Można ją uzyskać w taki sposób:

CType(sender, Control).Name

0
darek963 napisał(a)

Nazwa może się przydać np. wtedy gdy metoda jest handlerem dla zdarzeń więcej niż jednej kontrolki.

Od tego jest sender, zeby wlasnie bylo wiadomo kto tym razem wywolal zdarzenie. Nawet jak sie jest handlerem dla wielu kontrolek.

0

johny_bravo, wez przemysl problem zamiast bronic sie automatycznie.. sender ma typ Object, wiec odpowiedz darka963 z rzutowaniem na Control jest jak najbardziej poprawna. poza tym co to za roznica do czego on potrzebuje to Name? moze po prostu chce walnac msgboxa wypisujacego "Aaaha, gotha, you have pressed "+asdf.Name ?

darek963 - przytoczony kod byl pisany w C#, podales podpowiedz w VB. W C# to wyglada np. (sender as Control).Name ewentualnie ((Control)sender).Name

0

Ja tam sie nie bronie, bo nie mam po co ;) Po prostu czasem wydaje mi sie, ze ludzie kombinuja za bardzo :)

0
quetzalcoatl napisał(a)

darek963 - przytoczony kod byl pisany w C#, podales podpowiedz w VB. W C# to wyglada np. (sender as Control).Name ewentualnie ((Control)sender).Name

Sorki, ale na codzień piszę w VB.NET i stąd czasami moje automatyczne odpowiedzi. Ale jeśli ktoś korzysta z VS to złapie sens wypowiedzi i w łatwy sposób przetłumaczy sobie na C#. ;)

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