2009-07-21 7 views
3

J'ai deux formulaires pour mon application, qui sont visibles dans la barre des tâches de Windows. Quand une boîte de dialogue modale apparaît sur le formulaire principal, le formulaire secondaire est verrouillé. Toutefois, lorsque l'utilisateur clique sur le formulaire secondaire dans la barre des tâches, il apparaît sur la boîte de dialogue modale et est essentiellement figé.Boîte de dialogue modale avec formulaire secondaire affiché dans la barre des tâches

Y at-il un moyen de s'assurer que la boîte de dialogue modale ne dessine pas sous le formulaire secondaire? La propriété la plus haute n'est pas bonne, car elle dessine tout, même des choses qui ne sont pas liées à l'application.

Répondre

4

Votre problème peut être que vous ne l'avez pas spécifié un propriétaire pour la boîte de dialogue:

fenêtres appartenant généralement ne pas besoin de leur propre représentation sur la barre des tâches de Windows, car ils sont subordonnés à leurs propriétaires. Parce que l'activation d'une fenêtre possédée active implicitement le propriétaire et vice versa, il encombre simplement la barre des tâches pour avoir des entrées pour les deux. Normalement, leurs propriétés ShowInTaskBar ont la valeur false.

Les fragments de code suivants (en VB et C#) montrent une nouvelle forme en cours de création, propriété, et affiché:

// defining an owner form in C#

MyForm ownedForm = new MyForm();

ownedForm.ShowInTaskbar = false;

AddOwnedForm(ownedForm);

ownedForm.Show();

Dans votre cas, il semble que vous deviez définir la fenêtre du propriétaire pour la boîte de dialogue. Cela empêcherait la fenêtre présentant le dialogue d'apparaître sur.

EDIT Doit avoir cité ma source: .NET Windows Forms in a Nutshell. En outre, j'ai omis le code VB.NET. Je me suis fouetté de manière appropriée, mais je n'ai pas envie de patauger dans le fichier PDF pour le retrouver.

+0

Je t'aime mec. Vous avez résolu un problème majeur pour notre groupe d'applications :) Kudos. – jgallant