2009-07-13 6 views
15

J'ai trouvé la propriété Form.TopMost mais elle met le formulaire au-dessus de tout, y compris des choses qui ne font pas partie de mon application. Je soupçonne qu'il me manque quelque chose d'évident ici. (Form la classe de base appropriée pour une boîte de dialogue non modale?)Comment une forme peut-elle rester sur une autre?

Répondre

1

Vous pouvez spécifier des relations parent-enfant entre des fenêtres en fournissant le formulaire parent en tant que paramètre de la méthode ShowDialog() appelée sur le formulaire enfant. La fenêtre enfant reste alors sur le parent et minimise et restaure avec le parent.

+0

Je ne peux pas utiliser ShowDialog car cela le rend modal. – BCS

0

Si je vous comprends bien, vous ouvrez un formulaire à partir de votre application, et vous voulez que votre nouveau formulaire soit au-dessus de l'ancien.

Pour ce faire, vous pouvez utiliser ShowDialog() et StartPosition

SomeForm MyNewForm = new SomeForm(); 
MyNewForm.ShowDialog(); 

cela fera de ce séjour de forme au-dessus de celui Orignal, et vous pouvez également utiliser

MyNewForm .StartPosition = FormStartPosition.CenterParent; 

Pour contrôler où cette nouvelle forme des spectacles sur l'écran. Utilisez la propriété Form.Owner de votre formulaire de dialogue et définissez-la sur le formulaire principal.

+0

Je ne peux pas utiliser ShowDialog car cela le rend modal. – BCS

6

C'est très simple; Vous devez juste passer le propriétaire lorsque vous appelez la méthode Show()

YourForm.Show(parentForm); 
Questions connexes