Wątek przeniesiony 2016-05-23 11:30 z C# i .NET przez ŁF.

Jaki obiekt wywołał zdarzenie. Jak sprawdzić?

0

Może mi ktoś powiedzieć czy ten zapis jest poprawny i czy tak obsługuje się sprawdzania który obiekt wywołał zdarzenie? Czy taki zapis może być?

 private void Kto (object sender)
        {
            string Name = "Ania";
            Button button = sender as Button;
            button.Text = Name;
        } 

        private void button3_Click(object sender, EventArgs e)
        {    
            Kto(sender);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Kto(sender);
        } 
0

spróbuj z czymś takim w kodzie zdarzenia:

 MessageBox.Show(sender.ToString()); 
0

Ale ty tu nic nie sprawdzasz. Przypisujesz tylko labelce na przycisku tekst, gdzie tu jakieś sprawdzanie? W ogóle nie wiem o co pytasz.

0

Zapoznaj się z atrybutami dostarczającymi informacje o źródłowej metodzie wywołującej: [CallerMemberName], [CallerFilePath] i[CallerLineNumber].

Pozdrawiam
CodeFinger

0

Kod jest niepoprawny i nie tak się to sprawdza.
Przede wszystkim, skąd wiesz, że to button wywołał zdarzenie? Nawet tego nie sprawdzasz:

private void button3_Click(object sender, EventArgs e)
{    
    if(sender is Button) && ((sender as Button).Text = "Hello")
    {

    }
}

To jest poprawne sprawdzenie. Najpierw upewniasz się, że sender faktycznie jest buttonem. Jeśli tak, to dopiero wtedy możesz go rzutować na buttona i robić dalej z nim co chcesz.
Dobrze byłoby też sprawdzić najpierw (przed sender is Button), czy sender nie jest nullem.

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