Standard-Konstruktor für Designer

19/09/2007 - 08:27 von Frank Faster | Report spam
Hallo NG,

für Klassen, die im Designer sichtbar sein sollen, muss ich immer einen
Standard ctor erstellen, der dann den InitializeComponents-Aufruf enthàlt.
Nervig finde ich das, wenn ich den ctor ansonsten nicht gebrauchen kann,
weil es andere gibt. Man kann den zwar private machen. Aber vielleicht gibt
es einen anderen Weg, der weitere vorhandene Konstruktoren nutzen kann?

TIA, Frank
 

Lesen sie die antworten

#1 Günter Prossliner
19/09/2007 - 08:58 | Warnen spam
Hallo Frank!

für Klassen, die im Designer sichtbar sein sollen, muss ich immer
einen Standard ctor erstellen, der dann den
InitializeComponents-Aufruf enthàlt. Nervig finde ich das, wenn ich
den ctor ansonsten nicht gebrauchen kann, weil es andere gibt. Man
kann den zwar private machen. Aber vielleicht gibt es einen anderen
Weg, der weitere vorhandene Konstruktoren nutzen kann?



Was meinst Du mit "nutzen"?

Sicherlich kannst Du weitere Konstruktoren hinzufügen. Du musst ledlich den
parameterlosen CTOR aufrufen.

z.b:

class Form1 {
public|private Form1(){
InitializeComponent();
}

public Form1(string p1, int p2)
: this() {
// ...
}
}

Allerdings ist es meist besser _keine_ Parameter in Konstruktoren von UI -
Elementen zu verwenden, bzw. sicherzustellen, dass auch der default - CTOR
korrekt funktioniert, da der Designer einen solchen erwartet und verwendet.
Konstruktoren mit Parametern kannst Du _zusàtzlich_ z.b. verwenden, wenn Du
ein Control dynamisch erstellen musst und das so initalisieren kannst (wobei
da auch andere Varianten wie z.b. (statische) Hilfs-Methoden bzw.
Hilfsklassen möglich wàren).


OK?
mfg GP

Ähnliche fragen