Friend/ Private WithEvents

05/10/2009 - 08:27 von Karsten Sosna | Report spam
Hallo NG,
mir ist heute morgen etwas merkwürdiges aufgefallen. Ich habe eine einfache
Klasse:
\\\
Public Class Test
Public Event Changed()
End Class
///

Nun deklariere ich eine Variable in bspw. einem Formular:
\\\
Public Class Form1
Friend WithEvents cls As New Test
End Class
///

Nun schau ich in die linke ComboBox "Klassenname" oberhalb des
Code-Fensters, siehe da meine Klassendeklaration inkl. dem Punkt
"Ereignisse" wird angezeigt. Jetzt àndere ich die Deklaration auf
\\\
Private WithEvents cls As New Test
///
ab, also nur aus Friend, Private gemacht. Gleiches Spiel wie oben, ein Blick
in die ComboBox. Huch, die Klassendeklaration wird angezeigt aber nicht mehr
der Punkt "Ereignisse". Zu dem hat sich das Symbol der Klassendeklaration
geàndert. Jetzt wird da auf einmal ein kleines Schloss angezeigt. Was hat
das jetzt zu bedeuten? Gibt es irgendwo eine Übersicht dieser Symbole? Und
warum werden die Ereignisse nun jetzt nicht mehr angezeigt?
Merkwürdigerweise funktioniert folgender Code weiterhin:
\\\
Private Sub cls_Changed() Handles cls.Changed

End Sub
///

Danke für jede Information.
Gruß Scotty
 

Lesen sie die antworten

#1 Thorsten Doerfler
05/10/2009 - 12:29 | Warnen spam
Karsten Sosna schrieb:
\\\
Public Class Test
Public Event Changed()
End Class
///

Nun deklariere ich eine Variable in bspw. einem Formular:
\\\
Public Class Form1
Friend WithEvents cls As New Test
End Class
///

Nun schau ich in die linke ComboBox "Klassenname" oberhalb des
Code-Fensters, siehe da meine Klassendeklaration inkl. dem Punkt
"Ereignisse" wird angezeigt. Jetzt àndere ich die Deklaration auf
\\\
Private WithEvents cls As New Test
///
ab, also nur aus Friend, Private gemacht. Gleiches Spiel wie oben, ein Blick
in die ComboBox. Huch, die Klassendeklaration wird angezeigt aber nicht mehr
der Punkt "Ereignisse".



Kann ich hier bei mir (VS2008 SP1) nicht reproduzieren. Die Deklaration
hat ja im Normalfall keine Auswirkung auf die Klasse oder Ihre
Darstellung in der ComboBox. Der Punkt "Ereignisse" wird ja zudem
unabhàngig davon angezeigt, ob die Klasse Ereignisse hat.

Zu dem hat sich das Symbol der Klassendeklaration
geàndert. Jetzt wird da auf einmal ein kleines Schloss angezeigt.



Bist Du Dir sicher, dass sich das Symbol der Klassendeklaration geàndert
hat, oder meinst Du hier das Symbol der im Formular deklarierten Variablen?

Was hat das jetzt zu bedeuten?



Das Schloss kennzeichnet nicht öffentliche Member einer Klasse.

Gibt es irgendwo eine Übersicht dieser Symbole?



Class View and Object Browser Icons
http://msdn.microsoft.com/en-us/lib...ychfe.aspx

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen