Forum: VB.NET |
Thema:
Re: Events ? |
Von:
Klaus Holster (
22.08.2004 10:53) |
Hallo Ruppyo,
ein Event wird mit RaiseEvent ausgelöst. Das kann nur innerhalb der Klasse erfolgen, die den Event definiert.
Wenn der Event von ausserhalb ausgelöst werden soll, dann muss die definierende Klasse dafür eine Methode zur Verfügung stellen.
Die Reaktion auf einen Event kann innerhalb der Anwendung an beliebigen Stellen erfolgen. Dazu muss jeweils ein Eventhandler mit dem Event durch die AddHandler-Anweisung verbunden werden. Der Handler muss über dieselbe Signatur verfügen wie der Event, d.h. exakt die selben Aufrufparameter verwenden.
Hier ist das Beispiel aus der .NET-Doku:
Sub TestEvents()
Dim Obj As New Class1()
' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler
Obj.CauseSomeEvent() ' Ask the object to raise an event.
End Sub
Sub EventHandler()
' This procedure handles events raised by the object Obj.
MsgBox("EventHandler caught event.") ' Handle the event.
End Sub
Public Class Class1
Public Event Ev_Event() ' Declare an event.
Sub CauseSomeEvent()
RaiseEvent Ev_Event() ' Raise an event.
End Sub
End Class
Hth,
Klaus
Betreff |
Von |
Datum |
|
  |
Re: Events ?
Hi Klaus, mein Problem dabei ist, dass ich, nachdem das event ausgelöst wurde, nur in dem aktiven Formular das Ereigniss erhalte, alle anderen geöffneten Formulare haben den Handler auch... |
 |
 |
 |
|
|
Ruppyo
Jantzen
|
22.08.2004 11:12 |
|
  |
Re: Events ?
habs mit Public Shared Obj As New Class1(), Was in einer weiteren Classe deklariert wurde, hinbekommen.<br><br> |
 |
 |
 |
|
|
Ruppyo
Jantzen
|
22.08.2004 11:40 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!