|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CASCADE ET MOSAÏQUE DE FENETRES FILLES DANS UNE APPLICATION MDI
Information sur la source
Description
Petit bout de code tout simple permettant de mettre en cascade, mosaïque horizontale, et verticale des fenêtres 'filles' appartenant à une forme MDI. J'ai cherché dans les sources et forums, et je n'ai rien trouvé, ou alors j'ai mal cherché :-? :S C'est pourtant utile dans certaines applications MDI. Une zip contenant toute l'application
Source
- //Ouverture d'une nouvelle fenetre fille
- private void menuNewForm_Click(object sender, System.EventArgs e)
- {
- //Instanciation d'une fenetre fille
- Form2 frm = new Form2();
- //La forme appartient à la forme principale
- frm.MdiParent = this;
- frm.Top = 0;
- frm.Left = 0;
- //Affiche la fenetre Form2
- frm.Show();
- }
-
- //Mise en cascade des fenetres filles
- private void menuFCascade_Click(object sender, System.EventArgs e)
- {
- int nbr = 0;
- //Pour chaque fenetre fille
- foreach (Form frm in MdiChildren)
- {
- //on remet leur état en normal (si elles sont maximisées ou minimisées)
- frm.WindowState = FormWindowState.Normal;
- //Si une fenetre fille appartient a la classe Form2
- if (frm is Form2)
- {
- //Redimensionnement et ancrage
- frm.Top = 35 * nbr;
- frm.Left = 20 * nbr;
- frm.Width = 300;
- frm.Height = 300;
- }
- nbr++;
- }
- }
-
- //Mosaïque horizontale des fenetres filles
- private void menuFMHor_Click(object sender, System.EventArgs e)
- {
- int nbr = 0;
- //On compte le nbr de fenetre fille appartenant à la classe Form2
- foreach (Form frm in MdiChildren)
- if (frm is Form2)
- nbr++;
- //Si il n'y pas de fenetre fille appartenant à la classe Form2 on quitte
- if (nbr <= 0)
- return;
- //On divise la hauteur de la fenetre principale - 60 pixels (barre de titre + barre menu)
- int taille = (this.Height - 60) / nbr;
- nbr = 0;
- //Pour chaque fenetre fille appartenant à la classe Form2
- foreach (Form frm in MdiChildren)
- if (frm is Form2)
- {
- //On positionne la fenetre
- frm.Top = taille * nbr;
- frm.Left = 0;
- //Et redimenssionne
- frm.Width = this.Width - 40;
- frm.Height = taille;
- nbr++;
- }
- }
-
- //Mosaïque verticale des fenetres filles
- private void menuFMVer_Click(object sender, System.EventArgs e)
- {
- int nbr = 0;
- //On compte le nbr de fenetre fille appartenant à la classe Form2
- foreach (Form frm in MdiChildren)
- if (frm is Form2)
- nbr++;
- //Si il n'y pas de fenetre fille appartenant à la classe Form2 on quitte
- if (nbr <= 0)
- return;
- //On divise la largeur de la fenetre principale - 20 pixels (bords)
- int taille = (this.Width - 20) / nbr;
- nbr = 0;
- //Pour chaque fenetre fille appartenant à la classe Form2
- foreach (Form frm in MdiChildren)
- if (frm is Form2)
- {
- //On positionne la fenetre
- frm.Top = 0;
- frm.Left = taille * nbr;
- //Et redimenssionne
- frm.Width = taille;
- frm.Height = this.Height - 60;
- nbr++;
- }
- }
//Ouverture d'une nouvelle fenetre fille
private void menuNewForm_Click(object sender, System.EventArgs e)
{
//Instanciation d'une fenetre fille
Form2 frm = new Form2();
//La forme appartient à la forme principale
frm.MdiParent = this;
frm.Top = 0;
frm.Left = 0;
//Affiche la fenetre Form2
frm.Show();
}
//Mise en cascade des fenetres filles
private void menuFCascade_Click(object sender, System.EventArgs e)
{
int nbr = 0;
//Pour chaque fenetre fille
foreach (Form frm in MdiChildren)
{
//on remet leur état en normal (si elles sont maximisées ou minimisées)
frm.WindowState = FormWindowState.Normal;
//Si une fenetre fille appartient a la classe Form2
if (frm is Form2)
{
//Redimensionnement et ancrage
frm.Top = 35 * nbr;
frm.Left = 20 * nbr;
frm.Width = 300;
frm.Height = 300;
}
nbr++;
}
}
//Mosaïque horizontale des fenetres filles
private void menuFMHor_Click(object sender, System.EventArgs e)
{
int nbr = 0;
//On compte le nbr de fenetre fille appartenant à la classe Form2
foreach (Form frm in MdiChildren)
if (frm is Form2)
nbr++;
//Si il n'y pas de fenetre fille appartenant à la classe Form2 on quitte
if (nbr <= 0)
return;
//On divise la hauteur de la fenetre principale - 60 pixels (barre de titre + barre menu)
int taille = (this.Height - 60) / nbr;
nbr = 0;
//Pour chaque fenetre fille appartenant à la classe Form2
foreach (Form frm in MdiChildren)
if (frm is Form2)
{
//On positionne la fenetre
frm.Top = taille * nbr;
frm.Left = 0;
//Et redimenssionne
frm.Width = this.Width - 40;
frm.Height = taille;
nbr++;
}
}
//Mosaïque verticale des fenetres filles
private void menuFMVer_Click(object sender, System.EventArgs e)
{
int nbr = 0;
//On compte le nbr de fenetre fille appartenant à la classe Form2
foreach (Form frm in MdiChildren)
if (frm is Form2)
nbr++;
//Si il n'y pas de fenetre fille appartenant à la classe Form2 on quitte
if (nbr <= 0)
return;
//On divise la largeur de la fenetre principale - 20 pixels (bords)
int taille = (this.Width - 20) / nbr;
nbr = 0;
//Pour chaque fenetre fille appartenant à la classe Form2
foreach (Form frm in MdiChildren)
if (frm is Form2)
{
//On positionne la fenetre
frm.Top = 0;
frm.Left = taille * nbr;
//Et redimenssionne
frm.Width = taille;
frm.Height = this.Height - 60;
nbr++;
}
}
Conclusion
J'ai pas réussi à faire planté mon application, mais peut être que vous... ^^ :p
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
fenetre MDI [ par jesaipa_1 ]
Slt a tous je sais pas comment on fait pour passer d'une fenetre fille a une autre autre fenetre fille
empecher la fermeture d'une MDI fille [ par roinou ]
Salut à tous, Je voudrai empecher la fermeture d'une fenètre MDI Fille (toute les fenètres en fait). Idéalement cela reviendrai &
probleme de fenetre fille/mere [ par gretata ]
bonjour a tous !!bonjour, jai un problème pour appeler ma fenetre fille dans une fenetre parent ou mere, voila le code :using</font
Scrollbars, fenetre fille [ par MickParadiseLost ]
Bonjour. Je n'arrive toujours pas a mettre des scrollbars lorsque l'image qui s'affiche dans la fenetre est plus grande que cette fenetre. J'ai é
Fentre mdi et threading [ par Fildomen ]
Salutj'ai essayé de toutes les facons pour créer une fenetre mdi dans une fenetre mère, et que la fenetre fille aie son propre thread,
Accès MDI Parent depuis MDI Enfant ? [ par brejaud ]
Bonjour,Voila , j'ai un problème sur lequel je me casse les dents , et je ne trouve pas la réponse même dans MSDN ...J'ai une fenetre MDI Parent , For
Mdi + form maximized [ par thorgal1612 ]
Salut,Y'a un truc que je comprend pas. J'ai une mdi qui appelle une fille comme ceci :frmMenu FormMenu = new<f
Fenetre MDI, mais aussi avec contrôles... [ par vbond ]
Salut,Je désire réaliser une fenetre qui contient une partie avec des controles standards (labels, boutons, zones de texte...) et en dessous, une zone
fenetre mdi [ par athenaeros ]
slt, voila je prepare un sujet en c#, et au demarrage, dans ma fenetre principale, j'ai une fenetre ki souvre demandant un nom, puis il faut cliker su
pblm de PaintEventArgs [ par mxplr ]
Voila en fait je suis en train de coder une fonction ki me permet d'afficher un viseur sur un graphik, cette viser se constitue de 2 traits rouge dess
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|