コード例 #1
0
        private void Label_MouseEnter(object sender, MouseEventArgs e)
        {
            ToevoegingEventArgs tea = new ToevoegingEventArgs("suiker", true);

            // Nog een keer de 'Invoke'-notatie, maar hier het stuk 'if (SuikerChanged != null)' verstopt in het vraagtekentje.
            SuikerChanged?.Invoke(this, tea);
        }
コード例 #2
0
        // Detail: 1 eventhandler-methode die we voor *beide* buttons in het scherm gebruiken.
        // We moeten nu alleen nog even checken welke button de afzender van het event is.
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // Toegepaste Luiheid: als we toch geen eventhandler hebben voor SuikerChanged, hoeven we ook niks te doen!
            if (SuikerChanged != null)
            {
                // Welke button was geklikt -> wil de gebruiker nou wel of geen suiker?
                switch (((Control)sender).Name)
                {
                case "btnIkWil":
                    // Bouw een ToevoegingEventArgs-object dat meldt dat het gaat om suiker en *wel* toevoegen
                    ToevoegingEventArgs tea = new ToevoegingEventArgs("suiker", true);
                    // Vuur het 'SuikerChanged'-event af == voer de eventhandler(s) in event-variabele 'SuikerChanged' uit.
                    SuikerChanged(this, tea);
                    break;

                case "btnLaatMaar":
                    // Bouw een ToevoegingEventArgs-object dat meldt dat het gaat om suiker en *niet* toevoegen
                    ToevoegingEventArgs notea = new ToevoegingEventArgs("suiker", false);
                    // Vuur het 'SuikerChanged'-event af == voer de eventhandler(s) in event-variabele 'SuikerChanged' uit.
                    // Dit keer in de 'Invoke'-notatie (is eigenlijk hetzelfde als directe aanroep).
                    SuikerChanged.Invoke(this, notea);
                    break;

                default:
                    throw new Exception("Ja wat nou!?!");
                }
            }
        }