2009-07-21 11 views
3

Ich habe zwei Formen für meine Anwendung, die in der Windows-Taskleiste sichtbar sind. Wenn ein modales Dialogfeld im Hauptformular angezeigt wird, ist das sekundäre Formular gesperrt. Wenn der Benutzer auf das sekundäre Formular in der Taskleiste klickt, wird es jedoch über das modale Dialogfeld angezeigt und ist im Wesentlichen eingefroren.Modal Dialog mit Sekundärformular in der Taskleiste

Gibt es eine Möglichkeit, sicherzustellen, dass das modale Dialogfeld nicht unter das sekundäre Formular zeichnet? Die oberste Eigenschaft ist nicht gut, da sie von allem profitiert, auch von Dingen, die nicht mit der Anwendung zusammenhängen.

Antwort

4

Ihr Problem kann sein, dass Sie nicht einen Besitzer für den Dialog angegeben haben:

Owned Fenster der Regel keine eigene Darstellung auf der Taskleiste von Windows benötigen, weil sie an ihre Besitzer untergeordnet sind. Da das Aktivieren eines eigenen Fensters implizit den Eigentümer aktiviert und umgekehrt, würde es nur die Taskleiste überladen, Einträge für beide zu haben. Für Formulare im Besitz von Benutzern werden normalerweise die Eigenschaften ShowInTaskBar auf false festgelegt.

den folgenden Code-Fragmente (in VB und C#) zeigen eine neue Form erzeugt wird, gehört, und angezeigt:

// defining an owner form in C#

MyForm ownedForm = new MyForm();

ownedForm.ShowInTaskbar = false;

AddOwnedForm(ownedForm);

ownedForm.Show();

In Ihrem Fall scheint es, dass Sie das Besitzerfenster für den Dialog festlegen müssen. Das würde verhindern, dass das Fenster präsentiert der Dialog erscheint über es.

EDIT Sollte meine Quelle zitiert haben: .NET Windows Forms in a Nutshell. Außerdem habe ich den VB.NET-Code weggelassen. Ich habe mich angemessen ausgepeitscht, aber ich habe keine Lust, die PDF-Datei durchzusehen, um sie aufzuspüren.

+0

Ich liebe dich Mann. Sie haben ein großes Problem für unsere App-Gruppe gelöst :) Kudos. – jgallant