Forums Neueste Beiträge
 

containercontrol in containercontrol

27/11/2009 - 18:33 von Rene Grobel | Report spam
hallo NG,
ich benötige ein Usercontrol, welches (neben anderen controls) einen Panel
(panel1) haben soll, in dem dann die einzufügenden Controls platziert werden
sollen. Daher habe ich die Controls vom usercontrol auf den Panel umgeleitet
mit shadows (overrides ging nicht), damit die neuen Controls dort hinein
kommen.. Zur Laufzeit funzt es, aber im formdesigner liegen die eingefügten
Controls hinter dem Panel1.
Was mache ich falsch?

Vielen Dank
viele grüße von rene

<Designer("System.Windows.Forms.Design.ParentControlDesigner,
System.Design", GetType(IDesigner))> _
Public Class ucPanel
Private IsInitialisiert As Boolean = False
Public Shadows ReadOnly Property Controls() As
System.Windows.Forms.Control.ControlCollection
Get
If IsInitialisiert Then
Return Panel1.Controls
Else
Return MyBase.Controls
End If
End Get
End Property
Public Sub New()
InitializeComponent()
IsInitialisiert = True
End Sub
End Class
 

Lesen sie die antworten

#1 Elmar Boye
27/11/2009 - 19:06 | Warnen spam
Hallo Rene,

"Rene Grobel" schrieb ...
ich benötige ein Usercontrol, welches (neben anderen controls) einen Panel (panel1) haben soll, in dem dann die einzufügenden
Controls platziert werden sollen. Daher habe ich die Controls vom usercontrol auf den Panel umgeleitet mit shadows (overrides ging
nicht), damit die neuen Controls dort hinein kommen..



Shadows funktioniert (hier und im allgemeinen auch anderswo) praktisch
genausowenig, da die Serializer direkt auf Control zugreifen,
wo die Controls-Auflistung ursprünglich definiert ist.
Und somit Deine überschriebene Eigenschaft nicht zu Zuge kommt.

Wenn Dein Steuerlement àhnlich aufgebaut ist wàre eine Möglichkeit
sich das SplitPanel als Vorlage zu nehmen.

Die andere, einen eigenen Designer zu erstellen, was u. U. einigen
Aufwand mehr bedeutet, siehe
http://msdn.microsoft.com/de-de/lib...z5c0x.aspx
"Benutzerdefinierte Designer"

<Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", GetType(IDesigner))> _
Public Class ucPanel
Private IsInitialisiert As Boolean = False



Am Rande: Hier wàre entweder die ISupportInitialize Schnittstelle
http://msdn.microsoft.com/en-us/lib...nmode.aspx
oder aber (nach Deinem Verwendungszweck) die DesignMode Eigenschaft sinnvoller:
http://msdn.microsoft.com/en-us/lib...nmode.aspx

Gruß Elmar

Ähnliche fragen