Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  SplitContainer und Settings

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  SplitContainer und Settings (2083 mal gelesen)
mseufert
Ehrenmitglied V.I.P. h.c.
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-2212
3D Printer Prusa MK2 S

erstellt am: 17. Jul. 2012 14:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


SplitContainer.zip

 
Hallo zusammen,

hat's schon mal jemand geschafft, in einer Winform mit SplitContainern die jeweilige SplitterDistance als funktionierendes Setting zu verwenden, ohne in der Klappsmühle zu enden ?

Entweder springen die Splitter schon in der laufenden Anwendung unkontrolliert durch die Gegend, während man einen davon ändert, und/oder die, in der user.config korrekt eingetragenen Werte werden beim nächsten Start nicht oder falsch übernommen.

Bin ich nur zu blöd oder ist das evtl. ein bekannter Bug ?

Gruß, Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 778
Registriert: 18.05.2005

SolidWorks 2020 x64 SP3.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 21H1
Microsoft Office 365 ProPlus
Microsoft Visual Studio Enterprise 2022

erstellt am: 17. Jul. 2012 15:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mseufert 10 Unities + Antwort hilfreich

Hallo Michael

hab es auch mit VB Express 2010 nachvollziehen können.
Sobald man die SplitterDistance in den ApplicationSettings verknüpft, spinnt das Ding.

WorkAround -> Settings manuell setzen und speichern
(Nicht vergessen die bestehenden PropertyBindings zu entfernen)

Code:
Public Class Form1

    Public Sub New()
        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()
        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
        SplitContainer1.SplitterDistance = My.Settings.split_hor
        SplitContainer2.SplitterDistance = My.Settings.split_ver_1
        SplitContainer3.SplitterDistance = My.Settings.split_ver_2
    End Sub

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        My.Settings.split_hor = SplitContainer1.SplitterDistance
        My.Settings.split_ver_1 = SplitContainer2.SplitterDistance
        My.Settings.split_ver_2 = SplitContainer3.SplitterDistance
    End Sub

End Class


Gruss Andreas

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Ehrenmitglied V.I.P. h.c.
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2624
Registriert: 18.10.2005

erstellt am: 17. Jul. 2012 16:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Andreas,

vielen Dank für die Bestätigung, daß hier was faul ist und für Deinen Tipp. Das manuelle Bearbeiten hab' ich schon versucht, einziger Unterschied: Statt in der Sub New stand's im FormLoad-Handler.

Die Lösung hat zunächst gut ausgesehen, bis ... die SplitContainer auf einem TabControl drauf sind. Dann wird der Wert des Settings beim Umschalten der TabPage von irgend einem Spaßvogel  geändert. Wenn ich den erwische ...   

Gruß, Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MWN
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 17. Jul. 2012 16:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mseufert 10 Unities + Antwort hilfreich

Und im TabIndexChanged - Event den TabIndex überprüfen (ob es sich um den Tab mit dem SplitContainer handelt) und dem SplitContainer die SplitterDistance erneut manuell zuweisen funktioniert auch nicht?
Grüße

Tobias

------------------
Besucht mich doch mal in meiner Tischlerei

"...Kommunikation ist nur so gut wie ihr Ergebnis..." - frei nach Richard Bandler / John Grinder

"...Wenn du das tust, was du schon immer tust, wirst du auch nur das erhalten, was du schon immer erhalten hast..."

[Diese Nachricht wurde von MWN am 17. Jul. 2012 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Ehrenmitglied V.I.P. h.c.
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-2212
3D Printer Prusa MK2 S

erstellt am: 17. Jul. 2012 17:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Tobias,

das könnte gehen, falls der Wert zum Zeitpunkt des Events noch o.k. ist. Muss ich bei Gelegenheit mal näher untersuchen. Als Optimist mit Erfahrung befürchte ich allerdings, daß dann wieder andere Events dazwischen funken, z.B. ein Resize der Form - mal sehen ...

Gruß, Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Ehrenmitglied V.I.P. h.c.
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2624
Registriert: 18.10.2005

erstellt am: 07. Aug. 2012 20:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz