C# Neues Fenster und ein Klick in der Taskleiste

Nick_SMI

Ensign
Registriert
Sep. 2015
Beiträge
153
Hallo zusammen

Mit der Methode:
Code:
Fenster2 dlg = new Fenster2();
dlg.ShowDialog(this);
...erzeugt man ein neues Fenster: Aber wenn ich nur in der Taskleiste ein Symbol haben will, setzte ich ShowInTaskbar auf false (bei Fenster 2)
Aber dann: wenn ich das Symbol in der Taskleiste anklicke, erscheint das MainFenster, statt das Fenster 2!

Wie kann ich dies ändern?

Grüße und danke!
 
Hi,

verstehe ich das jetzt richtig? Du setzt das "ShowInTaskbar" von Fenster zwei auf "false", es wird also kein Symbol in der Taskbar für Fenster zwei angezeigt. Und jetzt wunderst du dich, dass du auf das Symbol von Fenster eins in der Taskbar klickst und das sich öffnet? Oder habe ich dich nur falsch verstanden?

VG,
Mad
 
Genau, ich will aber nicht, das Fenster zwei in der Taskbar sichtbar ist (weil sich das programm dann doppelt dargestellt ist)...
 
Hi,

dann bleibt dir wahrscheinlich nur übrig, das Fenster, das du beim Klick auf das Taskbar-Symbol öffnen willst, dem MainWindow bekannt zu machen. In dessen Listener musst du dich einklinken und dann eben das gewünschte Fenster in den Vordergrund holen.

Das wird meiner Meinung nach sehr unschönes Gefrickel, wenn da richtig viele Fenster auf sind. Würde ich persönlich so nicht machen.

Ein Fenster hat ein Symbol in der Taskleiste. Das ist Konvention. Wenn du einen Dialog, ein Formular oder eine Seite öffnen willst, die kein Symbol in der Leiste hat stellt sich die Frage, ob das wirklich ein neues "Form" sein muss (oder was auch immer deine Klasse "Fenster2" repräsentiert).

VG,
Mad
 
Ich war mir ziemlich sicher, dass es so funktioniert wie du es hast und habe es jetzt selbst getestet.
Mit dem Code
Code:
            Form form = new Form();
            form.ShowInTaskbar = false;
            form.ShowDialog();
Öffnet sich ein neues Fenster, das nicht seperat in der Taskleiste erscheint und immer wenn ich auf das Symbol drücke, erscheint sowohl das erste Fenster, als auch die neue Form, welche automatisch aktiv und im Vordergrund ist.

Also entweder beschreibst du dein Problem/Ziel falsch, ich verstehe es falsch oder irgendetwas stimmt bei dir nicht. Bei mir jedenfalls war es schon immer so wie gerade beschrieben.
 
Hi,

ich hatte es so verstanden, dass er NUR das zweite Fenster angezeigt bekommen möchte, sofern eine Instanz davon geöffnet ist und er dann in der Taskleiste auf das Symbol klickt.

Kann natürlich gut sein, dass ich es falsch verstanden habe.

VG,
Mad
 
Wenn er das so will, kann ja einfach das Symbol des 1. Fensters deaktivieren und das Fenster verstecken:

Code:
Form form2 = new Form();

this.ShowInTaskbar = false;
this.Hide();
form2.ShowDialog();

this.Show();
this.ShowInTaskbar = true;
 
Du suchst nach dem Event Activated in deiner Haupt-Form.
Prüfe dort ob das zweite Fenster offen ist. Wenn ja -> Show. Fertig.

mfg,
Max
 
Durch Nutzung von ShowDialog wird automatisch direkt das 2. Fenster aktiviert, außerdem ist das Fenster ja bereits offen, weshalb also nochmals Show? Außerdem geht deine "Lösung" überhaupt nicht auf sein Problem mit den Symbolen in der Taskleiste ein.

Dein Beitrag ist für Nick_SMI also genauso hilfreich wie dieser.
 
Zurück
Oben