C'est un problème très trivial mais je n'arrive pas à trouver un moyen de le résoudre. Cela m'énerve parce que je pense que je devrais connaître la réponse à cela, mais je recherche soit les mauvais termes, soit les mauvaises méthodes et propriétés.
J'ai une boîte de dialogue de configuration appelée depuis deux endroits.
Le premier provient du bouton du formulaire qui fonctionne correctement - comme vous vous en doutez.
Le second provient d'un menu contextuel sur le notifyIcon dans la barre d'état système, mais ici il apparaît en haut à gauche de l'écran. Idéalement, je voudrais qu'il apparaisse centré sur l'écran principal, ou peut-être proche de la barre d'état système.
J'ai essayé de définir le Location
, mais cela semble être remplacé lorsque dialog.ShowDialog()
est appelé.
J'ai essayé d'utiliser la surcharge dialog.ShowDialog(IWin32Window)
, mais cela ne semblait pas m'aimer passer null
comme poignée de fenêtre.
J'ai essayé d'utiliser dialog.Show()
à la place, mais (et c'est là que je peux me tromper) la définition de l'emplacement ne semble pas donner des résultats cohérents.
J'ai même essayé de régler le dialog.Parent
propriété - qui a bien sûr soulevé une exception.
Je sais juste que je vais réaliser que la réponse est évidente quand je (espérons-le) voir des réponses, mais pour le moment je suis complètement bloqué.
Merci pour les réponses - comme je le soupçonnais, c'était évident, mais comme d'habitude, je me suis retrouvé coincé à chercher le mauvais chemin. La chose encore plus ennuyeuse est que j'ai également utilisé cette propriété du concepteur.
Vous pouvez définir le Form.StartPosition
propriété à FormStartPosition.Manual
puis définissez le Form.Location
propriété à l'emplacement souhaité. Lorsque vous appelez ShowDialog
, le formulaire doit apparaître à l'emplacement souhaité.
MyForm frm = new MyForm();
frm.StartPosition = FormStartPosition.Manual;
frm.Location = new Point(10, 10);
frm.ShowDialog();
Essayez la propriété StartPosition sur le formulaire.