2010-10-15 38 views
1

Les formulaires enfants MDI, lorsqu'ils sont affichés, affichent leurs barres de titre pendant une fraction de seconde. Ensuite, les formulaires sont chargés normalement. Est-il possible de charger les formulaires sans afficher la barre de titre et la bordure de formulaire. Voilà ce qui arrive ...Barre de titre de formulaire enfant MDI Windows

alt text

alt text

Répondre

3

Je ne sais pas je le vois des captures d'écran. Mais la plainte est familière. MDI déteste vraiment une fenêtre enfant maximisée. Lorsque vous affichez une nouvelle fenêtre enfant et que vous la maximisez, elle doit passer par une chanson-et-danse. D'abord, il restaure l'enfant actuel afin qu'il ne soit plus maximisé. Crée ensuite le nouvel enfant et définit le focus. Puis le maximise. Ces étapes intermédiaires sont visibles et peuvent produire une bonne quantité de scintillement lorsque le dessin est cher. Le vôtre a l'air cher. Vous ne pouvez pas supprimer la peinture.

Si vous affichez toujours vos fenêtres enfant MDI agrandies, MDI n'est pas le bon modèle de formulaire à utiliser. Il suffit d'utiliser un formulaire simple, faire les contrôles de l'enfant 'windows'. Vous pouvez même sauver vos formes enfants actuelles en définissant leur propriété TopLevel sur false, ce qui les transforme en contrôles. Définissez FormBorderStyle sur None et Visible sur true.

+0

Merci Hans, je comprends mieux le problème maintenant. Je vais essayer vos suggestions. – Thomas

1

J'ai eu ce problème même lorsque la fenêtre enfant MDI n'a pas été agrandie, la barre de titre de l'enfant a été momentanément affichée lorsque le formulaire enfant a été affiché. Je l'ai contourné en plaçant le sommet de la forme de l'enfant à la hauteur du parent de sorte que le formulaire n'était pas visible pendant qu'il était montré. J'ai ensuite remis le haut de l'enfant à 0.

Cela a fonctionné jusqu'à ce que j'essaie d'ancrer l'enfant dans le parent afin que l'enfant soit automatiquement redimensionné lorsque la taille du parent a été modifiée. Cela m'a remis à la case départ. J'ai surmonté le problème cette fois en ajoutant un panneau caché au parent, en définissant la taille et la position du panneau à la taille et la position du contrôle MdiClient du parent, rendant le panneau visible juste avant d'afficher l'enfant, et cachant le panneau est fait. 'Pas joli mais ça marche jusqu'à ce que je puisse trouver un meilleur moyen de le contourner.