Bonjour tout le monde,
J'ai un petit problème qui me bloque et je ne vois pas trop comment m'en sortir.
En fait, je suis sur un projet en C#, c'est une application MDI. A un moment donné, je souhaite afficher une form sur un deuxieme écran.
La première solution que j'ai essayée est de simplement récuperer les tailles des écrans avec les fonctions Screen puis de choisir la position de la form (avec maform.location(1025,1) par exemple) pour qu'elle apparaisse sur le deuxieme écran.
Le problème c'est que mon application démarre maximisée sur le premier écran, et que ma deuxième form est de type:
Ayant un parent, le resultat est donc que j'obtiens une scroll bar en bas de mon premier écran pour aller chercher la form tout a droite, car elle apparait dans le "cadre" du parent, toujours sur le premier écran alors qu'il n'y a rien sur le deuxième.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public MaForm(Form parent) { InitializeComponent(); this.MdiParent = parent; SetStyle(ControlStyles.AllPaintingInWmPaint |ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.UserPaint, true); }
Je me suis dit bon pas grave, ne lui donnons pas de "parent" et tout ira bien, mais le probleme c'est que a la fermeture de cette form, je dois appeller une fonction d'une autre form, ce que je faisais ainsi:
Ce qui entraine un erreur puisque il n'y a plus de MDIParent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ((FrmMain)this.MdiParent).AutreForm.StopFunction(); ((FrmMain)this.MdiParent).AutreForm.MaForm = null; //MaForm est appelle depuis AutreForm
Je ne trouve pas d'autre moyen d'acceder a cette fonction que je ne peux pas déplacer.
J'ai pensé sinon a demarrer l'application maximisee sur les deux écrans mais j'ai pas trouvé de moyen...
Si quelqu'un a une idée je suis preneur!
J'espere avoir ete clair,
merci bien
Vlad
Partager