2009-04-20 7 views
2

Je crée une simple fenêtre de dialogue en C#, et je veux me souvenir où elle est placée pour pouvoir en ouvrir une autre au même endroit plus tard (pendant le même cycle d'application, donc pas besoin de fichiers de configuration, etc.). Je peux facilement enregistrer l'emplacement (un point) ou les limites (un rectangle), mais sur la création d'une autre forme, appelant form.ShowDialog() remet à zéro à la fois:Essayer de faire une fenêtre de dialogue se souvenir de sa dernière position

Form form= new Form(); 

form.Location = ptSavedLocation; 
//now form.Location is correct 

form.ShowDialog(); 
//now form.Location is default again, and form is displayed where I don't want it. 

Comment puis-je obtenir le formulaire de respecter son emplacement (ou Bounds, ou toute autre propriété/établissement approprié)? Merci!

+0

Ne pas oublier de vérifier si l'emplacement enregistré est toujours dans la zone visible de l'* affichage courant *. Cela peut être pénible pour les utilisateurs, par ex. lorsque vous travaillez avec des profils itinérants ou de bureau à distance et différentes résolutions d'écran (comme le bureau à domicile) –

Répondre

4

Définissez les formes commencent position Manuel

par exemple.

Form form= new Form(); 

form.StartPosition = FormStartPosition.Manual; 

form.Location = ptSavedLocation; 
//now form.Location is correct 

form.ShowDialog(); 
//now form.Location is default again, and form is displayed where I don't want it. 
+0

merci, c'était ce que je cherchais. –

0

Définir les formes startPosition propriété à Manuel

Questions connexes