Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jakub Lásko[Saarix]:18.11.2013 19:40

Zdravím, o eventech toho vím zatím docela málo, ale nyní jsem narazil na případ, kdy bych je docela rád použil, ale nevím teď jak dále.

public event EventHandler Click, MouseClick;

            if (ks.IsKeyDown(Keys.Enter))
            {
                if (Click != null)
                    Click(this, new EventArgs());
            }

            if (ms.LeftButton == ButtonState.Pressed)
            {
                if (MouseClick != null)
                    MouseClick(this, new EventArgs());
            }

Takto mám zhruba zkonstruovaný Eventy ve třídě Button (je to spíše ilustrativně), ale problém je teď, že v jiné třídě mám List<Button> a potřebuji po projetí listu zjistit zda se u daného Buttonu nenaplnil jeden z těch eventů, ale vůbec nevím jak se to dá zjistit. Díky :-)

Editováno 18.11.2013 19:41
Odpovědět
18.11.2013 19:40
Časem je vše možné.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Jakub Lásko[Saarix]
Petr Nymsa:18.11.2013 19:55

Můžeš to udělat několika způsoby.

  1. Každému buttonu přiřadíš jinou metodu k eventu
  2. lepší varianta (tedy podle mě). každému eventu přiřadíš stejnou metodu a vní rozeznáš podle třeba Tagu nebo něčeho jiného o jaký btn se jedná.

3)Teď mě napadá, šlo by možná udělat ještě aby jsi buttonům přiřadil delegát a jenom by jsi při zavolání eventu zavoval přiřazené metody v buttonu. Odpadla by tím detekce o jaký button se jedná.

Nahoru Odpovědět
18.11.2013 19:55
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Jakub Lásko[Saarix]:18.11.2013 20:13

Paráda, asi kvůli mému specifickému řešení zvolím druhou možnost, ale díky moc za rychlou a jasnou odpověď :-)

Nahoru Odpovědět
18.11.2013 20:13
Časem je vše možné.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.