# VB2010 - Properties



## Lupo (23 August 2010)

Hallo,
ich beschäftige mich gerade ein wenig mit VB2010. Hier bin ich jetzt auf die Properties gestossen. Hierzu würde mich interessieren, wie man für eine Property (nicht eine Standard-Variable) einen Defaultwert setzt, eine Beschreibung vergibt, die dann anschließend im Projekt-Explorer auch mit ausgegeben wird und wie man für Properties Rubriken vergibt. 

Alle meine diesbezügleichen Suchen im Internet (GidF) haben mich nur (wenn überhaupt) zu nicht funktionierenden Beispielen geführt. Sicherlich ist dieses Forum für solche Dinge vielleicht nicht die erste Adresse, aber ein Versuch kann ja bekanntlich nicht schaden 
Vielleicht kann mir hier ja jemand in der Sache "aufs Pferd helfen".


----------



## Jochen Kühner (23 August 2010)

Mhmm...

Ich kann dirs nur in C-Sharp zeigen, dort geht es nur wenn man nicht die Kurzschreibweise für Properties verwendet:


```
private int myprop
public int MyProp
{
get { return myprop; }
set { myprop = value; }
}
```


----------



## Lupo (24 August 2010)

Hallo Jochen,
das sieht in VB fast genauso aus - leider war das nicht der Gegenstand meiner Frage. Vielleicht ist es besser, ich führe das mal weiter aus :
Ich habe ein Benutzer-Steuerelement erstellt. Dieses besteht unter Anderem aus mehreren Textboxen. Wenn ich dieses Steuerelement anwähle dann möchte ich, das es darin zu einem Farbumschlag z.B. der Hintergrundfarbe der Textboxen kommt. Das ist kein Problem - bis dahin. Den Farbwert möchte ich von Aussen vorgeben können. Auch kein Problem. Wenn man dann möchte, dass sich eine Änderung dessen quasi sofort auswirkt, dann bedient man sich hier der Properties. So - und nun kommt der Punkt : Diese Property, die sich nicht aus eine Variable sondern den Zustand mehrerer Textboxen auswirkt, sollte schon mit etwas vorbelegt sein - ähnlich wie bei den anderen Farbauswahlen.
Des Weiteren möchte ich, dass wenn ich diese Property irgendwo im aufrufenden Programm verwende, mit wie bei den anderen Properties, die nicht von mir sind, ein Hilfe- oder Informationstext angeboten wird. Auserdem möchte ich mehrere von meinen Properties in eine eigene Rubrik zusammen fassen können.

Diese genannten Ansinnen sind aber anscheinend so exotisch, dass so etwas niemand sonst, außer mit vielleicht, macht. Jedenfalls gibt es dazu keine Beiträge - nirgendwo ...


----------



## Jochen Kühner (24 August 2010)

Defaultwert:

Geht in Csharp so 
private int myprop = 333;

Das ist dan der default wert, oder einfach im Konstruktor der Klasse einen setzen.

das ander geht über Attribute:

in csharp einfach
[System.ComponentModel.Description("blaBla2")] vor deine klasse schreiben.

Glaube in VB geht das so:
<System.ComponentModel.Description("blaBla2")> 
bin aber nicht sicher...


----------



## Lupo (26 August 2010)

Hallo Jochen,
ja - so geht es :

```
vor der Klassen-Deklaration :
Imports System.ComponentModel

und dann vor der Property :
 <Category("Kategorie-Name"), Description("Property-Beschreibung")>
```
Danke - das hat mich schon mal weiter gebracht.

Wärts du jetzt noch so nett, mir zu sagen, wie ich für eine (Public-)Variable einer Klasse bzw. für die Klasse direkt auch so eine Description festlegen kann ? Der "Compiler" nimt hier zwar die gleichen Befehle an, doch wenn ich die Klasse irgendwo verwende (oder eine Variable daraus), dann wird mir der Beschreibungstext hier nicht angeboten.
Das ist wahrscheinlich auch eine ganz einfache Sache ... 

Liebe Grüße


----------



## Jochen Kühner (26 August 2010)

Glaube das geht nur bei public Properties und nicht bei public Variablen!


----------

