Mon application a la configuration de l'interface utilisateur suivante:formes enfants lents à tirer mdi lorsque la visibilité changé
La principale forme est un conteneur MDI. Ses formes enfant sont attachées à un TabStrip
.
Chaque utilisateur a son jeu de formulaires enfants. En fonction de l'utilisateur actif, seuls les formulaires enfants de cet utilisateur sont affichés, ainsi que les onglets. Ceci est obtenu en passant par le MdiChildren
du formulaire principal et en définissant leur propriété Visible
sur false/true
en fonction de l'utilisateur actif.
foreach (Form item in MdiChildren)
{
if (((OfficeFormEx)item).UserID == (int)e.NewTab.Tag)
{
item.Visible = true;
}
else
{
item.Visible = false;
}
}
Cela a deux effets indésirables. L'un est que chaque forme d'enfant est redessinée successivement, ce qui est laid et lent. L'autre est que, pour une raison ou une autre, les formes vont de maximisées à normales, les désanchant effectivement de la forme principale.
Y a-t-il un moyen d'afficher uniquement l'un des formulaires enfant, tel que celui que l'utilisateur regardait précédemment, et de laisser les autres rester en arrière-plan? Le maximum/normal n'est pas un gros problème parce que je peux les maximiser manuellement.
+1 Votre question a été posée pour apprendre quelque chose que @Hans Passant a clairement expliqué. Merci! =) –