Przekazywanie parametru doEventHandlera

0

Mam taki problem:
tworze kontrolkę, dodaję do niej akcję MouseEnter

 sp1.MouseEnter += new EventHandler(MouseEnterL);

i to jest ok. Ale teraz chciałbym przekazać parametr z identyfikatorem tego obiektu. A może da się jakoś inaczej wykonać operacje na tym konkretnym obiekcie? np zmień kolor tła.

0

sender w zdarzeniu to twój obiekt, zrzutuj na odpowiedni typ i do dzieła. Jeśli tylko zmiana tła to wystarczy zrzutować na Control

0

Nigdy nie zainteresowało Cię co to jest sender w każdej funkcji obsługi zdarzenia? ;)

0

OK, miałem problem z rzutowanie :) już śmiga.

A dla zainteresowanych na przyszłość:

       
public void MouseEnterL(object sender, EventArgs e)
{
       ((Label)sender).BackColor = System.Drawing.Color.Gray;
       ((Label)sender).ForeColor = System.Drawing.Color.White;
}
0

Gorzej, gdy sender nie będzie typu Label tylko jakiegoś innego.

0

C# ma bardzo przyjemną składnię sprawdzania i rzutowania typów:

if (sender is Label) 
{
   Label sndr = sender as Label;
}

Słówko kluczowe as dotyczy tylko typów referencyjch.

0
pan kuba napisał(a)

C# ma bardzo przyjemną składnię sprawdzania i rzutowania typów:

if (sender is Label) 
{
   Label sndr = sender as Label;
}

Słówko kluczowe as dotyczy tylko typów referencyjch.

Po co używasz as w ifie, skoro wystarczyłoby zwykłe rzutowanie?

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