Probleme mit Splitter-Distance

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von tragl.

    Probleme mit Splitter-Distance

    Hallo zusammen.

    Ich nutz auf meiner frmMain mehrere Splitter:


    soweit so gut. Nach langen Programmierarbeiten und entsprechend oft gestartetem Debug schieben sich die DInger scheinbar außer Range und dann knallt's:


    Also soweit ich das beobachten kann, wird trotz dem Laden der vorher eingestellten Splitterdistance nach jedem Programmstart das Teil weiter nach rechts verschoben...
    Habt ihr einen Tipp für mich, wie ich da Abhilfe schaffen kann?
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    Hast Du ein einfaches Testprojekt plus Anleitung, wo wir das nachstellen können? Am besten mit GetSetSplitterDistance, denn das klingt nach Eigenbau.
    Was ich bei MS gemeldet hatte, war Folgendes: Ändert man bei nem Docked SplitContainer die Größe durch Ändern des Rundumcontainers und klcikt auf Rückgängig, sieht's danach aus wie Sau.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed
    Jo, hab ich "grad" mal eins fertig gemacht. Beim ersten Ausführen unten die 2 Splitter mal ein bisschen verstellen.
    Dann einfach ein paar Mal ausführen und wieder beenden und schon knallt's...
    Dateien
    • Testhure00.zip

      (21,02 kB, 55 mal heruntergeladen, zuletzt: )
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    Wenn man davon absieht, dass ich den Tds-Speicherpfad von New FileInfo("..\..\..\Daten\dts.xml") in New FileInfo("..\..\Daten\dts.xml") ändern musste, crasht da bei mir nix.
    Bilder
    • NoCrash.gif

      3,63 MB, 800×532, 84 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Allerdings hab ich grad festgestellt, dass man die 3. GroupBox mithilfe der 2. rausschieben kann, was dann zu dem genannten Crash führt.
    Bilder
    • KickingGroupBox3.gif

      940,19 kB, 800×532, 71 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Jo, der Fehler kommt mir bekannt vor - allerdings hatte ich da nix rausgeschoben...
    Gibt's nen Workaround, um den Fehler oder das Rausschieben zu verhindern? Würde ja vermutlich mein Problem lösen. Oder ich muss mir
    da was anderes einfallen lassen..
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    Setz die Mindestgrößen aller Splitterpanels auf ca. 100.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    probier auch mal dieses.
    • Zum einen ist das SizerPanel eine Alternative zum SplitContainer - einfacher zu handhaben, wenn man mehrere Controls nebeneinander sizeable haben möchte.
    • zum anderen speichert der ComplexConverter alle Control-Sizes in einem String und restauriert sie auch wieder.
      ich speichere diesen Datastring gewöhnlich in Settings, aber man kann den ebensogut in ein Dataset schreiben.

    nochmal zum SizerPanel: ich hab rechts ein Panel angedockt mit horizontalem und vertikalem SizerPanel drin - die kann man rauskopieren, das ist schneller als immer einen nehmen, und .WrapMode und .TopDown einzustellen.
    Wenn ich mit dem Design zufrieden bin, lösche ich das Template-Panel (es ist aus WinformHelpers\CopyTemplates auskopiert).
    Dann ist noch die Extender-Property IsFillControl wichtig, die allen Controls zugefügt wird, die auf einem SizerPanel liegen.
    Üblicherweise ist eines der Controls auf einem SizerPanel immer das FillControl.

    Dateien
    @VaporiZed: Danke, werd ich mal probieren. Standen alle auf 25
    @ErfinderDesRades: sieht auch nicht verkehrt aus, ist aber Eigenbau oder? Den Complexconverter hatte ich mal probiert, mag ich nicht - deshalb hatte ich mir was Eigenes gebaut ;)
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:

    ErfinderDesRades schrieb:

    NIH oder was?

    :P ja, war vielleicht blöd formuliert :)

    Die Frage war, ob das SizerPanel ein Eigenbau ist - nicht, dass ich das schlecht finde oder nicht mag.
    Und ich hab den ComplexConverter getestet und mochte ihn nicht, weshalb ich mir was eigenes gebaut hatte.
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    @ErfinderDesRades:
    Wenn du mir jetzt noch sagst, wie ich das einbauen kann. Hab dein Testprojekt grad offen und finde nirgends einen Verweis darauf. Auch in der Dokumentgliederung taucht das nicht auf - und auch nicht im Code..





    Edit:
    Ich hab das ganze Problem nun mal versucht aufzudröseln. Das muss eine Art Bug sein, denn meine Splitterdistance befindet sich definitiv innerhalb des gültigen Bereichs


    Er verlangt ja, dass die SplitterDistance im Bereich von Panel1MinSize und Panel1Width - Panel2MinSize liegt.
    Panel1MinSize ist 100
    Panel1Width - Panel2MinSize -> 821-200 = 621
    Die geforderte SplitterDistance ist 125

    ?(
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tragl“ ()

    Kannst Du das aktuelle Projekt nochmal hochladen, inkl. Schritt-für-Schritt-zum-Fehlerunglück-Anweisung?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    tragl schrieb:

    Wenn du mir jetzt noch sagst, wie ich das einbauen kann. Hab dein Testprojekt grad offen und finde nirgends einen Verweis darauf. Auch in der Dokumentgliederung taucht das nicht auf - und auch nicht im Code.


    ja, doof. Das Form2 ist mir verrutscht in den MyProject-Ordner.
    Aber wenn du es startest, dann startet doch Form2.
    Form1 ist das falsche - dassis glaub deine Vorlage.
    @VaporiZed: das große Projekt kann ich nicht uploaden und in dem Kleinen lässt es sich ja leider nicht nachstellen
    @ErfinderDesRades: danke, schau' ich mir an

    Edit:
    Hab's jetzt testweise mal eingebaut. Hab 1 SizerPanel genommen, Dock = unten und da meine 3 GroupBoxes draufgepackt. Deren Width lade
    und speichere ich über meine AppSettings - klappt bisher ganz gut
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tragl“ ()