AddressOf an eine Funktion in VB.NET übergeben, um AddHandler zu verwenden

8

Ich muss eine Referenz einer Funktion an eine andere Funktion in VB.NET übergeben. Wie kann das gemacht werden?

Meine Funktion muss AddHandler intern verwenden, wofür ich eine Handler-Funktion übergeben muss. Mein Code unten funktioniert offensichtlich nicht, aber es vermittelt die Idee von dem, was ich brauche.

%Vor%

Gibt es einen anderen Weg, dies zu tun? Der AddHandler muss irgendwie auf einen übergebenen Parameter in einer Funktion gesetzt werden ...

    
DieSlower 24.05.2013, 17:06
quelle

3 Antworten

13

Ein Funktionsdelegat ist genau das, was Sie dazu brauchen. Zuerst müssen Sie den Delegaten irgendwo in der Klasse definieren. Ändern Sie die Signatur natürlich auf Ihre Veranstaltung.

%Vor%

Ihre Funktion übernimmt den Delegaten als Argument.

%Vor%

Und so nennen Sie die Funktion:

%Vor%     
Fuzhou Hu 24.05.2013 21:45
quelle
8

Ihr zweites Argument in der Funktion sollte vom Typ EventHandler sein, und Ihre Funktion würde dann wie folgt aussehen:

%Vor%

Jetzt benötigen Sie eine Methode, um diese Klicks zu verarbeiten:

%Vor%

Und Sie können diese beiden Methoden jetzt mit etwas wie:

konsumieren %Vor%     
Janez Lukan 24.05.2013 19:56
quelle
1

Zunächst müssen Event-Handler Subs haben. Zweitens kann AddressOf nicht als Typ verwendet werden. Wenn die Unterklasse in derselben Klasse ist, verwenden Sie einfach den Unternamen. Wenn es sich in einer anderen Klasse / Datei befindet, müssen Sie möglicherweise die Unteröffentlichkeit veröffentlichen und / oder als Mitglied der anderen Klasse qualifizieren. Die Subs für die AddHandler-Klausel müssen grundsätzlich dem Muster folgen:

%Vor%

Wenn Sie verschiedene Routinen basierend auf dem Namen des Menüelements benötigen, können Sie einen Handler verwenden und die entsprechende Routine basierend auf dem Namen des Elements aufrufen, das das Ereignis auslöst.

    
tinstaafl 24.05.2013 17:46
quelle

Tags und Links