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í.

Eventy a jak na ně

Tohle by Vám snad mohlo pomoct, je tam základní návod jak volat metody, které patří jin třídě. Ta třída která obsluhuje nějaou menší třídu jí do eventu nasype metodu která je potřeba volat.

C# .NET

using System;
using System.Threading;

namespace EventsTutorial
{
    class Program
    {
        static void Main(string[] args)
        {
            var tag = new Tags();

            //před použitím naší třídy si do jejího eventu dáme metodu
            tag.TagModChanged += TagModChanged;



            //nyní apliakce běží a občas se mod změní a občas ne
            //simulace
            while (true)
            { 
                Random rand = new Random();
                //šance na zěnu je 50%
                tag.SimulaceZmeny(rand.Next() % 2);
                Thread.Sleep(500);
            }
        }

        private static void TagModChanged(object sender, EventArgs eventArgs)
        {
            ZobrazPrvky();
        }

        public static void SchovejPrvky() // priklad metody bez promenny
        {
            Console.WriteLine("Schovej prvky");
        }

        public static void ZobrazPrvky() // toto se musi volat pri udalosti zmeny tagu z x na 0
        {
            Console.WriteLine("Zobraz prvky");
        }
    }

    //Vaše třída pro práci
    public class Tags
    {
        int TagModMem = 5;
        private int TagMod = 0;

        //tento event handler nám umožní uložit do něj několik metod, které se spustí, pokaždí když se event zavolá
        public EventHandler TagModChanged;

        public void SimulaceZmeny(int hodnota)
        {
            TagMod = hodnota;
            MODE_Int_Valu­eChange(null, null);
        }

        void MODE_Int_Valu­eChange(object sender, EventArgs e)
        {        
            if (TagMod == 0 & TagModMem > 0) //mod skoci z nenuly na nulu
            {

                // zde tapu a nevim jak zavolat metodu z prvni obrazovky
               //zavoláme náš event handler a v něm se spustí všechny metody, které se k němu zaregistrovaly 
                if (TagModChanged != null)
                {
                    //teoreticky můžeme poslat sender: kým byl event zavolán
                    //event args - nějaké parametry které dostanou registrované metody
                    //invoke v postatě dělá to že zavolá všechny metody zaregistrované v EventHandleru
                    TagModChanged.Invoke(null,null);
                }
               

            }
            TagModMem = TagMod;
        }
    }
}

Neformátovaný

Přidáno: 25.7.2017
Expirace: Neuvedeno

Avatar
Autor: Jan Sála
Aktivity