Custom Event - Funktionsweise?

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von singu.

    Custom Event - Funktionsweise?

    Ich hab mich bisher nur mit normalen Events beschäftigt. Nun möchte ich auch mal die Custom Events ausprobieren, und nun möchte ich gerne wissen kennt ihr gute Beispiele bzw. Anleitungen die erklären wie man Custom Event verwendet.
    Die Custom-Events verwendet man dann, wenn das Programm informiert werden will, dass ein Event erzeugt/hinzugefügt/entfernt wurde. Bei "normalen" Programmen wird dies selten der Fall sein.
    Falls du etwas experimentieren möchtest:
    Gib folgende Zeile in einer Sub ein und drücke Enter. Der Rest erklärt sich dann wahrscheinlich von selbst:

    VB.NET-Quellcode

    1. Public Custom Event meinCustomEvent As EventHandler


    Die IDE fügt nun einige Zeilen hinzu, die - glaube ich - für sich selbst sprechen.

    LG, der_Kurt
    Ich bekomm von einer DLL, die ich eingebunden habe, Events und diese möchte ich global verarbeiten, also eine Klasse namens Global beinhaltet die ganzen Events. Und nun möchte ich in meinem Programm, nicht die Events der DLL ansprechen, sondern die Events die in Global sind. Ganz einfach und kurz erklärt, ich möchte die Events von der DLL an meine Klasse Global weiterleiten.
    Willst du "wissen" ob irgendein Code-Teil sich bei deiner Klasse anmeldet, um das Event zu empfangen? Wenn nein, dann brauchst du das auch nicht.
    oder beim abmelden(RemoveHandler), oder eine Bedingung für das aufrufen eines Events einbauen?
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Ich habe noch eine Frage zu den Custom Events und zwar möchte ich gerne wissen ob ich die dazu verwenden kann. Mein Programm meldet sich an einem Programm per API des Programms an. Diese API besitzt ein Event namens AppEvent. Nun läuft mein Programm im Hintergrund, ich muss aber wenn ich ein Event bekomme ein FolderBrowserDialog aufmachen und ein Pfad auswählen, dieser öffnet sich aber nicht immer. Nun wollte ich fragen ob sich das über CustomEvents lösen lässt.
    Du kannst ein "Custom Event" verwenden, wenn du die Instanz des Ereignisdelegaten an unverwalteten Code weitergeben musst. Wird in .NET ein Ereignis (statisch) registriert, erstellt das Framework im Hintergrund eine Delegateninstanz und übergibt diese dem Ereignis, welches es in einem MulticastDelegate speichert. Soll das Ereignis jedoch von unverwaltetem Code ausgelöst werden, musst du die Instanz weiterreichen, damit der unverwaltete Code einen gültgen Funktionszeiger erhält, der aufgerufen werden kann. Dafür musst du im CustomEvent - AddHandler-Zweig die Methode aufrufen, mit der die Ereignisse registriert werden und den Parameter-Delegaten :) übergeben.
    Gruß
    hal2000