Wann macht der Designer was?

02/09/2007 - 11:22 von Andre Ritter | Report spam
Hallochen,
wenn ich ein UserControl MyUserC schreibe und dort einen Label einfüge, so
stehen alle Label-Props in der vom Designer erzeugten Datei für das
Control (InitializeComponent ). Füge ich dieses Control in eine Form ein so
steht in deren InitializeComponent nur das Einfügen des Controls und die
Angaben für dieses, aber nicht die CodeZeilen für das Label des Controls.

Wenn ich jetzt aber ein ein UserControl MyLabel direkt von Label ableite
und z.B. die BackColor Red setze, dann steht das logischer Weise in der
DesignerDatei von MyLabel. Beim Einfügen in eine Form steht BackColor = ...
aber auch in der DesignerDatei der Form. Es wird also 2x die Farbe gesetzt.
(Das mag bei der Farbe kein Problem sein, ich will aber von anderen Controls
ableiten und Buttons hinzufügen, die dann aber doppelt wàren)
Auch wenn der Befehl im New oder sonst irgendwo steht, wird er doppelt
ausgeführt.

Wie kann man erreichen, daß BackColor = rot nicht mehr in der
Form-InitializeComponent steht?

Vielen Dank
grüße von andre
 

Lesen sie die antworten

#1 Gerold Mittelstädt
02/09/2007 - 11:48 | Warnen spam
Hallo Andre!

Andre Ritter schrieb:
Wenn ich jetzt aber ein ein UserControl MyLabel direkt von Label
ableite und z.B. die BackColor Red setze, dann steht das logischer



Wo setzt Du die?

Weise in der DesignerDatei von MyLabel. Beim Einfügen in eine Form
steht BackColor = ... aber auch in der DesignerDatei der Form. Es
wird also 2x die Farbe gesetzt. (Das mag bei der Farbe kein Problem
sein, ich will aber von anderen Controls ableiten und Buttons
hinzufügen, die dann aber doppelt wàren) Auch wenn der Befehl im New oder
sonst irgendwo steht, wird er doppelt
ausgeführt.

Wie kann man erreichen, daß BackColor = rot nicht mehr in der
Form-InitializeComponent steht?



Meinst Du Standardwerte?

<System.ComponentModel.DefaultValue(GetType(System.Drawing.Color),
"Red")> _
Public Overrides Property BackColor() As System.Drawing.Color
Get
Return MyBase.BackColor
End Get
Set(ByVal value As System.Drawing.Color)
MyBase.BackColor = value
End Set
End Property

Viele Grüße!

http://itc.napier.ac.uk/e-petition/...titionIDG8

Ähnliche fragen