Announcement

Collapse
No announcement yet.

Forms managen

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

  • Forms managen

    Hallo erstmal.
    Habe ein Problem mit mehreren Forms.
    In meinem Programm möchte ich mehrere Forms gleichzeitig auf dem Desktop haben. D.h. eine MainForm und ein paar drumherum. Es klappt auch alles (Datentausch etc.) Die anderen Forms sind eigentlich eigenständige Programmteile. Möchte auch keine MDI Anwendung.
    Jetzt aber zu dem Problem, nur die MAinForm ist ShowInTaskbar=true. Alle anderen false. Wenn ich jetzt in ein anderes Programm wechsle (meins ist aktiv) und danach in mein Programm mit MainForm zurcük wechsle, wird auch leider nur diese MAinForm angezeigt. Die anderen Forms: Form1, Form2, Form3, ... habe ich mit .Show() erzeugt.
    Jetzt kann ich Sie mit FormX.BringToFront() auch in den Vordergrund holen und mich danach selber Me.Activate() setzen, aber nur wenn ich in dieser Form auch einen Button click, der diese Befehle enthält.
    Wie automatisiere ich das? Wenn ich das in Private Sub MainForm_Activated packe und mich dann nach vorne hole und dann active setzte (was ich ja nicht immer unbedingt möchte, da ich auch die z-order evtl. wieder herstellen möchte) , flackern die Forms wie wild und beruhigen sich erst nach ein paar Sekunden. Ich denke die IDE ist so schlau und unterbricht dann die Pingpong Nachrichten schleife. Wie kann ich das Ereignis Activate kurzzeitig außer Kraft setzen und erst nach abarbeiten wieder aktivieren?
    Für einen konstruktiven Vorschlag wäre ich sehr dankbar.
    homa57

  • #2
    Zuerst meine Kritik: Dasist so ja nicht ganz im Sinne des (Fenster-)Erfinders weil genau dafür eigentlich MDI-Forms da sind.

    Nun zur Lösung:
    Erstelle einfach eine globale boolsche Variable (z.b.: Dim OnActivate as Boolean = false) und setz als allerersten Aufruf in deinem Event "If OnActivate then Exit Sub" und als 2. "OnActivate = True". Dann kannst du mit deiner Reihenfolge rumspielen wie du lustig bist. Vergiss aber nicht als allerletzten Befehl wieder "OnActivate = False" zu setzen.

    Comment


    • #3
      danke

      manchmal hat man aber auch ne gedächnis lücke, fange jetzt nach ca. 4 1/2 jahren mit dem wieder lernen an. da merkt man erstmal was man alles vergisst ;-)

      die kritik kann ich verstehen. aber wenn ich mir recht erinnere ist der nachteil einer mdi anwendung, dass alle subfenster in dem hauptfenster bleiben müssen. oder kann ich die mittlerweile aus dem hauptfenster lösen? für meine anwendung, auf multimonitor einsatz ausgelegt, zwingend notwendig.

      thx homa57

      Comment


      • #4
        nein, die müßen immernoch in ihrem hauptfenster bleiben... aber was hindert einen daran, dieses über mehrere monitore zu vergrößern...?

        Comment

        Working...
        X