Hallo zusammen,
so, auch diese harte Nuss ist geknackt. Der Weg zu einer halbwegs vernünftigen und nach ersten Tests funktionierenden Lösung geht wie folgt:
Für alle SplitContainer einen Handler für das SplitterMoved- Event anlegen und den Container zusammen mit der jeweiligen SplitterDistance irgendwie protokollieren. Hab's in eine ListBox geschrieben, aber das geht sicher auch auf anderen Wegen.
Am Log läßt sich jetzt erkennen, was wann schief geht.
In meinem Fall war's so, daß beim ersten Aktivieren einer TabPage das zunächst korrekt übernommene Setting willkürlich geändert wurde. Bei jedem weiteren Umschalten der TabPages wurde das Event nicht mehr ausgelöst und die Distance blieb konstant.
Daraus ergibt sich die Lösung, vor dem manuellen Setzen des Settings im FormLoad Handler die jeweilige TabPage mit dem entsprechenden SplitContainer zu selektieren.
So ist das problematische erste Umschalten der TabPage ausgetrickst und die SplitterDistance wird nicht mehr "von Geisterhand" verändert.
Daß diese spezielle Lösung auch in allen anderen Fällen hilft, in denen die SplitContainer spinnen, ist nicht anzunehmen. Bei einem anderen Aufbau der WinForm könnte der Hund an einer anderen Stelle begraben sein. Durch das Loggen der SplitterMoved- Events kommt man ihm jedenfalls auf die Schliche.
Gruß, Michael
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP