VisualBasic UserControl mit Dock.Fill in Panel

second.name

Lieutenant
🎅Rätsel-Elite ’24
Registriert
Sep. 2009
Beiträge
718
Hallo Leuz,

ich möchte zur Laufzeit in einem Panel (eines SplitContainers) ein UserControl hinzufügen. Jenes UserControl sollte das Panel komplett "ausfüllen", weshalb ich die Eigenschaft "Dock" auf "Fill" und alle Anchor setzte. Doch leider wird das Panel nicht komlett ausgefüllt, sondern das UC nur so groß, wie es erstellt wurde, im Panel angezeit.

Woran liegt das?
 

Anhänge

  • Form.JPG
    Form.JPG
    14,5 KB · Aufrufe: 222
Hab es doch noch geschaft...

Code:
Dim myUC As New UserControl1 With {.Dock = DockStyle.Fill, [B].Size = SplitContainer1.Panel2.Size[/B]}

...Da mir IntelliSense beim eingeben keinen Zugriff auf ...Panel2.Size gibt, hab ich es nur durch Zufall rausgefunden.

Hat jemand eine Idee, warum IntelliSense hier schlapp macht?
 
weil die Eigenschaft für die Klasse nicht relevant ist, wie Microsoft es nennt. Sie sollte nicht im Code verwendet werden. Siehe:
http://msdn.microsoft.com/de-de/library/system.windows.forms.splitterpanel.size.aspx

Ich verstehen allerdings auch nicht, warum du die Size-Eigenschaft überhaupt benutzt, denn Fill überschreibt dies normalerweise (also nicht wirklich, aber wenn Dock=Fill ist, ist die Size-Angabe irrelevant)

Ich kann deinen ursprünglichen Fehler nicht ganz rekonstruieren, wenn ich das tue:
Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim myUC As New UserControl1 With {.Dock = DockStyle.Fill}
        SplitContainer1.Panel1.Controls.Add(myUC)
    End Sub
End Class

ist das das Ergebnis (Panel2 ist im hintergrund eigentlich Grün, das UserControl1 ist rot):
 

Anhänge

  • panel.jpg
    panel.jpg
    28,3 KB · Aufrufe: 163
:confused_alt:...Ich verstehe das nicht. :confused_alt:

Ich mach es genau wie in deinem Codelisting, bekomme aber immer das UserControl in der Größe, wie es erstellt wurde (Siehe Bild des ersten Beitrags)?
 
könntest du das Projekt bereitstellen, dass ich mir das direkt darin sehen kann?
 
...Hier das "Projekt" ;-)
 

Anhänge

hmm ich glaube ich kann die nicht weiterhelfen, bei mir (Visual Studio 2008 prof.) siehts so aus, wenn ich einfach das projekt öffne und das Debuggen starte.

vielleicht hilft es ja das Projekt neu anzulegen? Ist mir jetzt aber auch ein Rätsel.
 

Anhänge

  • panel2.jpg
    panel2.jpg
    24 KB · Aufrufe: 162
Wenn auch didaktisch nicht ganz korrekt, werde ich es eben wie im obigen Codelisting programmieren (müssen).
 
Zurück
Oben