salut,
je chercher a centrer la boite de dialogue ouverte par un MessageBox.Show() sur un des Form de mon application plutôt que sur l'écran en cours.
quelqu'un sait comment faire ca ?
merci
salut,
je chercher a centrer la boite de dialogue ouverte par un MessageBox.Show() sur un des Form de mon application plutôt que sur l'écran en cours.
quelqu'un sait comment faire ca ?
merci
Te faire ta propre messagebox ? C'est pas le standard de windows tout simplement. Alors faut que tu sorte des sentier battu.
Ouvre notepad, fait un modif, et quit... la messagebox est screen center. C'est le behaviour adopté par microsoft, au lieu dessayer de faire différent, pose toi la question: "Est-ce que microsoft a passé plus de temps que moi (brainstorm) sur le screen behaviour du message box?". La réponse est oui, donc je te conseil de rester comme c'est la, vu que c'est le standard.
Ma réponse est pas vraiment un aide mais plutot une facon de bien programmer!
il doit bien avoir un moyen de viser cette boite pour la centrer ?
Faut faire du pinvoke pour aller chercher la handle de la messagebox (Google : Messagebox get handle)
Ensuite tu peux faire un pinvoke SetWindowPos (http://msdn.microsoft.com/en-us/libr...45(VS.85).aspx)
Pas très élégant mais ca va fonctionné!
merci !
je trouve vraiment crade cette Form qui ne ce centre pas sur le Form parent.
Tu as trouvé ?
Je viens de penser a un prob, le messagebox est dialog. Donc ton code va etre blocking.
Tu va devoir bidouillé un peu pour créé une instance de la messagebox sans faire un show dessus pour pouvoir aller chercher le handle de la window.
Sinon, tu pourra pas faire du pinvoke dessus car ton code va etre unblock apres avoir choisi un DialogResult.
je me suis recrée un composant qui fonctionne + ou - comme le MessageBox (sans les icônes), j'aurais du faire ca des le début car il ce centre sur son Form parent.
ca élimine tous les problemes des que l'on a plusieurs écrans !
je viens de tomber sur la soluce d'un gars qui recupere le handle de la fenetre mais il se refait aussi les classes qui affiche ou gere une fenetre.
c'est la soluce parfaite mais on peut remarquer que c'est quand meme sacrément compliqué de recuperer et d'utiliser ce handle...
http://www.codeproject.com/KB/dialog/CenterDialog.aspx
Partager