Announcement

Collapse
No announcement yet.

Problem mit Resize, Maximize und Menu Strip

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Resize, Maximize und Menu Strip

    Ich habe derzeit folgendes Problem:

    In einer Applikation gibt es ein Hauptfenster mit mehreren Parentfenstern, die man ausblenden kann (quasi eines für Tools, eines für eine Historie und so weiter). Ausserdem gibt es eine Menuzeile. Führe ich einen herkömmlichen Resize aus, werden alle Fenster entsprechend verschoben. Findet ein Maximize statt, klappt alles ohne Probleme. Wird nun aber dieses Fenster wieder auf normale Größe verkleinert, so liegt der Menustrip nun über der Titelzeile, der Fensterrand wird nicht sauber gezeichnet und auch sonst sieht es mal mehr mal weniger nach Chaos aus.

    Manchmal wird wenigstens durch das Klicken auf einen Menupunkt (Item) der Fensterrand neu gezeichnet und ab diesem Zeitpunkt ist auch das Fenster wieder in der Größe veränderbar. Dann muss man nur das Hauptfenster ein klein wenig in der Größe verändern, und alles wieder ok.

    Probehalber habe ich einen Timer eingebaut, der einfach mal nach einer Sekunde einen Update des Fenster erzwingt, ohne erfolg. Nur ein Verändern der Größe durch den Timer brachte einen erfolg, da dies aber dann generell bei einem Resize erfolgt, ist dies natürlich keine praktikable Lösung.

    Jetzt fällt es mir etwas schwer, denn Sachverhalt so zu formulieren, dass ich zu diesem Thema auch nur Ansatzweise etwas noline finden konnte.

    Kennt jemand diesen Effekt?

    Markus Bauer

  • #2
    Hm nein ich kenn den Effekt nicht, aber da stimmt etwas mit dem Paint-Ereignis nicht. Kann es sein, dass beim verkleinern eine Exception fliegt, die du nicht abfängst? Evtl. unterbricht dass das Neuzeichnen der restlichen Elemente. Wenn während eines Events (also wenn die Handler ablaufen) eine Ausnahme auftritt, wird das Event abgebrochen.
    Aber das:
    [...]Applikation gibt es ein Hauptfenster mit mehreren Parentfenstern[...]
    versteh ich nicht.
    Just be DRY and KISS your customers.

    Comment

    Working...
    X