Hallo,
ich habe ein Formular mit einem Tabcontrol mit 4 Registerkarten. Auf jeder der Registerkarten befinden sich mehrere Labels, Datagridviews und Schaltflächen. Im Resize_Ereigniss des Formulares werden die Größen und Positionen der Elemente an die neue Größe errechnet und die Elemente bekommen die entsprechenden Werte zugewiesen. Das Problem ist, daß die neuen Größen und Positionen nur dann korrekt angewendet werden, wenn beim Ändern der Formulargröße die erste Registerkarte aktiviert ist. Wenn ich beispielsweise das Programm starte, auf die zweite Registerkarte wechsele und dann erst das Formular anpasse, wird zwar die Größe des Tabcontrolls angepasst, aber die Listen, Labels und Schaltflächen auf allen Registerkarten verändern sich nicht. Wenn das Programm gestartet wird und dann schon das Formular maximiert wird, dann paßt sich nicht nur das Tabcontrol, sondern auch alle Elemente an die neue Größe an.
Ausschnitt des Quellcodes:
Wenn ich alle Elemente aus dem tabcontrol entferne und direkt in das Formular einfüge, funktioniert es. Gibt es evtl. eine Update-Eigenschaft oder etwas Anderes eines tabcontrols, was die aktualisierung beeinflußt? Was ist der Unterschied zwischen der ersten Registerkarte zu den Anderen?
Vielen Dank schon einmal im Voraus für eure Hilfe.
ich habe ein Formular mit einem Tabcontrol mit 4 Registerkarten. Auf jeder der Registerkarten befinden sich mehrere Labels, Datagridviews und Schaltflächen. Im Resize_Ereigniss des Formulares werden die Größen und Positionen der Elemente an die neue Größe errechnet und die Elemente bekommen die entsprechenden Werte zugewiesen. Das Problem ist, daß die neuen Größen und Positionen nur dann korrekt angewendet werden, wenn beim Ändern der Formulargröße die erste Registerkarte aktiviert ist. Wenn ich beispielsweise das Programm starte, auf die zweite Registerkarte wechsele und dann erst das Formular anpasse, wird zwar die Größe des Tabcontrolls angepasst, aber die Listen, Labels und Schaltflächen auf allen Registerkarten verändern sich nicht. Wenn das Programm gestartet wird und dann schon das Formular maximiert wird, dann paßt sich nicht nur das Tabcontrol, sondern auch alle Elemente an die neue Größe an.
Ausschnitt des Quellcodes:
VB.NET-Quellcode
- Private Sub ErgebnisseFormular_Resize(sender As Object, e As EventArgs) Handles Me.Resize
- Dim Breite As Integer
- Dim HoeheGross As Integer
- Dim HoeheKlein As Integer
- Dim Zwischenraum As Integer
- Zwischenraum = 10
- ErgebnisseTab.Left = Zwischenraum
- ErgebnisseTab.Top = Zwischenraum
- ErgebnisseTab.Width = Me.ClientSize.Width - (Zwischenraum * 2)
- ErgebnisseTab.Height = Me.ClientSize.Height - SchliessenBefehl.Height - (Zwischenraum * 3)
- SchliessenBefehl.Left = Me.ClientSize.Width - SchliessenBefehl.Width - Zwischenraum
- SchliessenBefehl.Top = ErgebnisseTab.Bottom + Zwischenraum
- Breite = (SchuetzenTab.ClientSize.Width - (Zwischenraum * 4)) / 3
- HoeheGross = SchuetzenTab.ClientSize.Height - JugendLabel.Height - JugendVorschauBefehl.Height - (Zwischenraum * 4)
- HoeheKlein = (SchuetzenTab.ClientSize.Height - (Zwischenraum * 10) - (JugendLabel.Height * 3) - (RingeJugendVorschauBefehl.Height * 3)) / 3
- JugendLabel.Left = Zwischenraum
- JugendLabel.Top = Zwischenraum
- JugendListe.Left = Zwischenraum
- JugendListe.Top = JugendLabel.Bottom + Zwischenraum
- JugendListe.Width = Breite
- JugendListe.Height = HoeheGross
- JugendVorschauBefehl.Left = JugendListe.Left
- JugendVorschauBefehl.Width = (Breite - Zwischenraum) / 2
- JugendVorschauBefehl.Top = JugendListe.Bottom + Zwischenraum
- JugendDruckenBefehl.Left = JugendVorschauBefehl.Right + Zwischenraum
- JugendDruckenBefehl.Width = JugendVorschauBefehl.Width
- JugendDruckenBefehl.Top = JugendVorschauBefehl.Top
- ...
Wenn ich alle Elemente aus dem tabcontrol entferne und direkt in das Formular einfüge, funktioniert es. Gibt es evtl. eine Update-Eigenschaft oder etwas Anderes eines tabcontrols, was die aktualisierung beeinflußt? Was ist der Unterschied zwischen der ersten Registerkarte zu den Anderen?
Vielen Dank schon einmal im Voraus für eure Hilfe.