vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: SplitterDistance in dynamisch erzeugtem SplitContainer 
Autor: spatzimatzi
Datum: 14.06.15 11:55

Hallo,
habe noch einige Einstellungen ausprobiert.
Und zum Teil hatte ich Erfolg. Erlärung weiter unten.
Da es wichtig ist, erkläre ich nochmals die Objekte.

Auf die Form wurde über den Werkzeugkasten ein TabControl gesetzt mit mehreren TabPages.

Beim Start des Programmes wird im Ereignis Load dynamisch eine zusätzliche TabPage erstellt.
Auf diese TabPage setze ich einen SplitContainer (SC1) und auf das Panel2 des SC1 wiederum ein SplitContainer (SC2). Auf das Panel1 von SC1, Panel1 und Panel2 von SC2 werden unterschiedliche Objekte gesetzt, meist TextBoxen.

Die Breite der Bereiche soll über die SplitterDistance eingestellt werden. Die Werte liegen in den Settings und werden beim Schließen der Form abgelegt und beim Öffnen der Form gelesen und sollen die alten Aufteilung der 3 Bereiche wieder herstellen.

Teilerfolg ist zu verbuchen!
Die SplitterDistance von SC1 wird jetzt korrekt eingehalten

SC1.SplitterDistance = Wert
SC1.FixedPanel = FixedPanel.Panel1

Jetzt habe ich gedacht, dass wird auch bei SC2 funktionieren
Leider nicht.

Aber mir ist etwas aufgefallen.
Ich konnte nachvollziehen, dass die SplitterDistance mit dem Wert aus den Settings korrekt gesetzt wird, aber die SplitterDistance dann beim Anklicken der TabPage nachträglich verschoben wird. Und dieses Verschieben auf der SC2 weicht immer um einen bestimmten Prozentwert ab.
Zunächst habe ich das nicht verstanden. Dann habe ich nicht nur die SplitterDistance von Hand verschoben und getestet, sondern auch die Breite der TabControl. Und siehe da, die prozentuale Verschiebung hat sich auch geändert. Aber warum?

Des Rätsels Lösung: Es hat mit der Breite des TabControls in der Entwicklungsumgebung zu tun

Verändere ich das TabControl beim Test in der Größe, dass sie mit der Größe auf der GUI übereinstimmt, dann funktioniert das System einwandfrei. Ist das TabControl kleiner oder größer, dann kommt es zu diesen Verschiebungen, immer im Verhältnis aus Breite des TabControl aus GUI und des Programmes.

Nun meine Fragen:
Warum dieses Verhalten?
Kann man dies verhindern?
Muss man, bevor man die TabPage anschaut ein Neuzeichnen ausführen? Und wenn, wie mache ich dies?
Muss ich evtl. einen anderen Weg nehmen.

Viele Grüße
spatzimatzi
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
SplitterDistance in dynamisch erzeugtem SplitContainer2.756spatzimatzi11.06.15 12:08
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.133spatzimatzi13.06.15 18:18
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.170spatzimatzi14.06.15 11:55
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.129cookstdu14.06.15 18:06
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.115spatzimatzi15.06.15 07:34
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.110Manfred X15.06.15 10:33
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.189spatzimatzi15.06.15 12:55
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.375Manfred X15.06.15 13:03
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.452spatzimatzi15.06.15 13:54
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.092Manfred X15.06.15 14:24
Re: SplitterDistance in dynamisch erzeugtem SplitContainer2.156spatzimatzi15.06.15 15:46

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel