private void timer_Tick(object sender, EventArgs e) { operacja++; // zwiekszanie operacje zegara if (operacja >= 5) // co 5 operacji zegara wykonuj: { // Zadanie do wykonania Action a = new Action(() => { // Petla dla wszystkich pracownikow w kolekcji, wykonujaca ich prace foreach (Pracownik pracownik in pracownicy) { pracownik.Pracuj(); } }); // Wywolanie zadania Invoke(a); operacja = 0; // reset operacji } ZaznaczonyPracownik?.Ruch(); // Odswierzenie kontrolek, glownie funkcji rysujacej Refresh(); }
private void buttonUsun_Click(object sender, EventArgs e) { // Jezeli nie ma nic zaznaczonego, nie rob nic if (listBoxPracownicy.SelectedIndex < 0) { return; } // Stworzenie i wyswietlenie okna dialogowego potwierdzajacego usuniecie obiektu DialogResult dialog = MessageBox.Show($"Czy napewno usunac {ZaznaczonyPracownik.ToString()}?", "Usuwanie pracownika", MessageBoxButtons.YesNo); if (dialog == DialogResult.Yes) { // Usun zaznaczony element pracownicy.Remove(ZaznaczonyPracownik); // Wywolanie funkcji odswierzajaca formularz OdswierzListePracownikow(); } }
private void listBoxPracownicy_SelectedIndexChanged(object sender, EventArgs e) { // Odpiecie zdarzenia od wszystkich obiektow pracownik ktorzy nie sa zaznaczonym pracownikiem foreach (Pracownik p in pracownicy.Where(o => o != ZaznaczonyPracownik)) { // Wywolanie metody odpinajacej metode od zdarzenia tego obiektu p.OdepnijZdarzenie(this); } // Brak pracownika, koniec funkcji if (ZaznaczonyPracownik == null) { return; } // Wywolanie metody ktora przypnie metode do zdarzenia obiektu ZaznaczonyPracownik.PrzypnijZdarzenie(this); // Manualne wywolanie funkcji aktualizujacej interfejs Pracownik_OnAktualizacja(ZaznaczonyPracownik); }
private void panel1_Paint(object sender, PaintEventArgs e) { // Wywolanie funkcji obiektu ktora bedzie rysowac zaznaczonego pracownika // ? -> sprawdzenie czy obiekt nie jest nullem ZaznaczonyPracownik?.Rysuj(e.Graphics); }