Laden...

mehrere Forms gleichzeitig in den Vordergrund holen

Erstellt von AndyII vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.455 Views
A
AndyII Themenstarter:in
10 Beiträge seit 2013
vor 10 Jahren
mehrere Forms gleichzeitig in den Vordergrund holen

Hallo,
ich habe das Hauptformular. An diesem sind 2 Forms angeheftet die sich mit der Hauptform verschieben.
Nun möchte ich, dass wenn die Hauptform den Focus wieder erhält die anderen beiden ebenfalls in den Vordergrund geholt werden.

Hab schon einiges probiert darunter auch mit TopMost allerdings ohne Ergebnis..

C
2.122 Beiträge seit 2010
vor 10 Jahren

Gibts bei einem Formular die Methode BringToFront? Die sollte das eigentlich tun.
Schon probiert?

C
168 Beiträge seit 2010
vor 10 Jahren

Du kannst nicht mehrere Forms ganz vorne haben eine Form ist immer die oberste und jede die du anschließend z.b. mit BringToFront aufrufst lässt deine Fokusierte Form um eins nach hinten springen ... Sprich deine Anwendung die du grade im Vordergrund geholt hast geht automatisch wieder im Hintergrund ein endloser Kreislauf du könntest als Anwender also nur mit der 2. SubForm arbeiten... was ziemlich unpraktisch ist 😃. Siehe dazu Screenshot

Suchst du zufällig danach wie man Minimierte Forms wieder aufruft? Weil deine jetzige Frage keinen Praktischen gebrauch hat 😃

um Minimierte Forms aufzurufen nutzt man Form.Show

Real programmers don't comment their code - it was hard to write, it should be hard to understand.

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo AndyII,

du kannst den Onwer eines Forms auf das Hauptform setzen, um sicherzustellen, dass das Form immer vor dem Hauptform angezeigt wird. Genaugenommen sollte sich das Hauptform als Owner des anderen Forms setzen, denn das anderen Form sollte das Hauptform überhaupt nicht kennen.

herbivore

A
AndyII Themenstarter:in
10 Beiträge seit 2013
vor 10 Jahren

Vorerst Danke!

Das mit den Formen ist klar aber danke für die Bildliche darstellung 😉
Allerdings war damit gemeint dass die Formen nach vorne geholt werden nicht dass mehrere gleichzeitig AKTIV sein sollen...
sprich wenn ich ein Fenster hab das mein Programm komplett überdeckt und ich klick mein Programm in der Taskleiste an, dann soll nicht nur die Hauptform über das große Fenster( dass die Formen verdeckt hat) geschoben werden sondern die anderen beiden auch...
ich hab es zb so probiert, dass ich erst die beiden anderen nacheinander den Fokus gebe und zu letzt der Hauptform wieder den Fokus...

Zum Owner...
leider weis ich mit dem Owner Operator nicht den umgang allerdings werden die 2 nebenforemen ja von der Hauptform erstellt... und wenn ich das Objekt und die Instanz von der Hauptform erstelle müsste doch automatisch dieser als Owner in den erstellten formen eingetragen sein oder ?!?

Danke im vorraus 😉

S
269 Beiträge seit 2010
vor 10 Jahren

Bei den Methoden Form.Show und Form.ShowDialog (hier wohl eher .Show) gibt es den owner-Parameter... einfach an der Stelle innerhalb der Main Form ein "this" übergeben...

jedoch nichts, was nicht auch ohne Weiteres in der MSDN oder Google nachgelesen werden könnte... wenn man nicht sogar mal von selbst drauf stößt, wenn man Form.Show aufruft!

C
168 Beiträge seit 2010
vor 10 Jahren

Ah jetzt ist klar was du suchst Form.Show ist da natürlich sinnlos außer es ist mit Hide versteckt worden.

Da BringToFront bei mir super funktioniert hat geh ich mal davon aus das deine SubForms minimiert sind und in dem fall lautet das Zauberwort:Form.WindowState

                if (form3.WindowState == FormWindowState.Minimized)
                    form3.WindowState = FormWindowState.Normal;
                else
                    form3.BringToFront();

wenn die SubForms minmiert sind muss du diese erstmal wieder maximieren oder auf Normalen Zustand setzen. Sollten die SubForms nicht minimiert sein reicht ein BringToFront für den gewünschten Effekt.

Durch das Maximieren werden die Forms automatisch nach vorne gehollt und ein bringToFront wird nicht mehr benötigt.

Getestet mit 3 Forms ... die HauptForm hat bei mir aber die Forms nach vorne gehollt wenn ich auf ein Button geklickt statt beim Fokusierungs Event.

Real programmers don't comment their code - it was hard to write, it should be hard to understand.

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo AndyII,

leider weis ich mit dem Owner Operator nicht den umgang

wie schon Karill Endusa gesagt hat, kriegt man das durch eine Websuche leicht heraus.

allerdings werden die 2 nebenforemen ja von der Hauptform erstellt... und wenn ich das Objekt und die Instanz von der Hauptform erstelle müsste doch automatisch dieser als Owner in den erstellten formen eingetragen sein oder ?!?

Nein, der Owner wird nicht automatisch gesetzt, zumindest nicht, wenn man ihn bei Show nicht explizit angibt.

herbivore

A
AndyII Themenstarter:in
10 Beiträge seit 2013
vor 10 Jahren

show(this);
Danke das war das Zauberwort!!

ja normal spiel ich immer ein bischen und schau was es so für operationen bzw variablen in den klammern gibt... aber bei show bin ich leider noch nicht drauf gekommen...

Danke!