vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Oberfläche · Fenster   |   VB-Versionen: VB5, VB606.07.05
MDI-ChildForms - AutoResize

Automatisches anpassen der MDI-Childs ohne zusätzlichen Code

Autor:   HolgerBewertung:  Views:  15.894 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Ich hatte vor einer Weile nach einer sicheren Methode gesucht, die MDI-Childs auf die neue Größe des MDI-Parents automatisch anpassen zu lassen, aber leider nichts passendes gefunden. Bei einer einzelnen Form ist das ja kein Problem. Wie sieht es aber aus, wenn ich z.B links ein Ansichts/Auswahlbereich habe und rechts das Form ständig austausche?? Im Normalfall würde ich die beiden Childs mit Hilfe von ScaleWidth und ScaleHeight ausrichten. Aber es geht auch anders.

Anstelle den Ansichts/Auswahlbereich als eigenständige Form zu implementieren, verwendet man einfach ein PictureBox-Control und platziert die notwendigen Elemente dann direkt auf die PictureBox. Das PictureBox-Control selbst wird hierbei direkt im MDI-Parent-Form erstellt - und genau das ist der ganze Trick!

Wir brauchen also zunächst eine MDI-Form (frmStart) und 1-... MDI-Childs.

Im MDI-Form eine Picturebox (Picture1) einfügen und die Align-Eigenschaft der PictureBox auf "3 - links ausrichten" einstellen. Nun die Width-Eigenschaft auf die benötigte Breite festlegen (z.B. 3000). Achtung: die Height-, Top und Left-Eigenschaften sind schreibgeschützt, da die Ausreichtung durch das Setzen der Align-Eigenschaft vom System vorgenommen wird!

Auf dieser Picturebox noch ein paar Label, Textboxen,... erstellen.

Nun zu den MDI-Childs (Form1). Hier die Eigenschaft Borderstyle auf "2 - Änderbar" festlegen und ControlBox auf "False" setzen (kann auch auf True bleiben. Unterdrückt nur die Anzeige des Minimieren, Maximieren und Schliessen-Symbols des MDI-Childs). Die Eigenschaft MDIChild muss natürlich auf "True" gesetzt werden (wichtig, wenn es in das MDI-Form geladen werden soll) und zu guter Letzt noch WindowState auf "2 - Maximiert" festlegen.

Die MDI-Childs können jetzt über folgenden Code in das MDI-Form geladen werden:

Dim oChild As Form
Set oChild = New Form1
oChild.Show

Die Child-Form wird hierbei autom. rechts neben unserer PictureBox, die ja als Auswahlfenster dient, platziert - und zwar so dass der gesamte rechte MDIParent-Bereich ausgefüllt ist. Wird die MDI-Form vergrößert oder verkleinert, passt sich die Child-Form autom. an.

Wer das MDI-Child auf die ganze Formgröße maximieren will, braucht nur die Picturebox im MDI-Parent-Form ausblenden (frmStart.Picture1.Visible = False). Das MDI-Child maximiert sich automatisch auf die komplette Größe des MDI-Forms.

Probiert es einfach mal aus. Das macht sich einwandfrei.
 



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.