C# eigenes Event erstellen


Jungbluth

Mitglied
Hallo,
ich will einen eigenes Event erstellen und was ich bisher her gelesen habe hab ich auch halbwergs verstanden. Was ich nicht verstanden habe ist wie man nun den Auslöser definiert.

EDIT: Da ich im nachhinein gemerkt habe das ich mich falsch ausgedrückt habe formuliere ich noch mal um:
Wie prüfe ich ob die Bedingungen erfüllt wurde?
 
Zuletzt bearbeitet:

zerix

Hausmeister
Moderator
Hallo,

schön, dass du deine Frage neu formuliert hast, aber ich denke nicht, dass es das wirklich besser macht. Ich habe keine Ahnung, was du eigentlich möchtest. :)

Viele Grüße
Sascha
 

Jungbluth

Mitglied
Ok, ich versuchs nochmal anders.
Hintergrund ist das ich eine eigene Touchgeste definieren will und nun herausfinden will wann diese Geste ausgelöst wird (bzw ob).
 

Spyke

Premium-User
Du willst selber ein Ereignis auslösen welches du an anderer Stelle dann abonnieren und auswerten kannst oder wie?

für standard Ereignis zum beispiel so:
C#:
        /// <summary>
        /// Das Ereignis wird ausgelöst wenn eine Zeile selektiert/fokusiert wurde
        /// </summary>
        public event EventHandler SelectionChanged; //<---- das Ereignis

        /// <summary>
        /// Löst das Ereignis <see cref="SelectionChanged"/> aus.
        /// </summary>
        /// <param name="e"><see cref="EventArgs"/></param>
        protected virtual void OnSelectionChanged(EventArgs e) => SelectionChanged?.Invoke(this, e); //<---- feuert das Ereignis ab


.....
    
    
    //das auslösen dann
    
    void MacheWas()
{
    if(habsGemachtUndIsOk)
        OnSelectionChanged(EventArgs.Empty);
}
 

Spyke

Premium-User
Als kleine Rand Info
SelectionChanged?
das Fragezeichen ist eine verkürzte schreibweise zur null prüfung ob jemand das ereignis abonniert hat.

man könnte es auch so schreiben:
C#:
protected virtual void OnSelectionChanged(EventArgs e)
{
    if(SelectionChanged!=null)
        SelectionChanged.Invoke(this, e);
}
oder auch so
C#:
protected virtual void OnSelectionChanged(EventArgs e)
{
    if(SelectionChanged!=null)
        SelectionChanged(this, e);
}