Re: Ereignis auslösen

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance

From: Peter Fleischer (peter.fleischer_nospam__at_gmx.de)
Date: 08/02/04


Date: Mon, 2 Aug 2004 11:20:21 +0200

Lisa,
du bist hier bestimmt den VB6-Gewohnheiten verfallen:-(

Du hast folgendes gemacht:

1. Variable lvf vom Typ ListViewForm deklariert:

    Dim WithEvents lvf As ListViewForm

2. Du wartest auf ein Ereignis, welches durch eine Instanz erzeugt wird,
deren Verweis in der Variablen lvf steht.

    Private Sub lvf_ItemSelected( ... ) Handles lvf.ItemSelected

3. Du deklarierst eine neue Varaible "myListViewForm" vom Typ
"ListViewForm", erzeugst eine Instanz der Klasse "ListViewForm" und
schreibst den Verweis in die Variable "myListViewForm".

    Dim myListViewForm As New ListViewForm

Ich hoffe, damit verstehst du, dass ohne hellseherische Fähigkeiten des
Frameworkes es nicht möglich ist, ein Ereignis über die "leere" Variable
"lvf" zu auszulösen.

Entweder du nutzt die neue in VB.NET Möglichkeit:

    Dim WithEvents lvf As NEW ListViewForm

und verzichtest auf eine weitere Instanzierung und schreibst nur:

    lvf.Show()

ODER

du nutzt AddHandler - was ich am besten finde, da es am übersichtlichsten
(für mich) ist:

    Dim myListViewForm As New ListViewForm
    AddHandler myListViewForm.ItemSelected, AddressOf lvf_ItemSelected
    myListViewForm.Show()

ODER

du weist die erzeugte Instanz deiner vorher deklarierten Variablen zu:

    lvf = New ListViewForm
    lvf.Show()

Peter