begin process at 2012 05 26 03:43:42
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > CASCADE ET MOSAÏQUE DE FENETRES FILLES DANS UNE APPLICATION MDI

CASCADE ET MOSAÏQUE DE FENETRES FILLES DANS UNE APPLICATION MDI


 Information sur la source

Note :
Aucune note
Catégorie :API Source .NET ( DotNet ) Classé sous :mdi, fenetre, mosaique, fille Niveau :Débutant Date de création :16/09/2004 Vu / téléchargé :14 406 / 494

Auteur : Blacknight91titi

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) GETSYSTEMTIME ET SETSYSTEMTIME par Arnotic
Source avec Zip Source avec une capture Source .NET (Dotnet) [SILVERLIGHT] UN GÉNÉRATEUR INTERACTIF D'ARBRES DE HUFFMAN par loudadyassine
Source avec Zip Source .NET (Dotnet) [C#2008] OBSERVER L'ACTIVITÉ INPUT (CLAVIER SOURIS) DE L'UTI... par PCPT
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DE L'API VIRTUAL DISK IMAGE DE WINDOWS 7 par Willi
Source avec Zip Source .NET (Dotnet) CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C# par Bidou

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) SAUVEGARDE DES TAILLES ET LOCATIONS DES FENÊTRES. par cryt3k
Source avec Zip Source avec une capture Source .NET (Dotnet) LANCER UNE FEUILLE FILLE MDI UNE ET UNE SEULE FOIS par anadeveloppeur
Source avec Zip Source .NET (Dotnet) [DÉBUTANTS] ANIMATION DES FENETRES, CHARME SPÉCIALE POUR VOT... par boutemine
Source avec Zip Source avec une capture Source .NET (Dotnet) ACTIVER/DÉSACTIVER LE MENU FICHIER /NOUVEAU par naylouvar
Source .NET (Dotnet) RENDRE UNE FENETRE TRANSPARENTE EN CAS DE DÉPLACEMENT DE CEL... par sephiro

Commentaires et avis

Commentaire de Arthenius le 16/09/2004 17:51:33

heu..y avait vachement plus simple :

private void m_cascade_Click(object sender, System.EventArgs e)
{
this.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade);
}

private void m_horizontal_Click(object sender, System.EventArgs e)
{
this.LayoutMdi(System.Windows.Forms.MdiLayout.TileHorizontal);
}

private void m_vertical_Click(object sender, System.EventArgs e)
{
this.LayoutMdi(System.Windows.Forms.MdiLayout.TileVertical);
}

private void m_mosaique_Click(object sender, System.EventArgs e)
{
this.LayoutMdi(System.Windows.Forms.MdiLayout.ArrangeIcons);
}

Commentaire de Arthenius le 16/09/2004 17:58:01

petite précision : "this" est la fenetre MDI parent....

précision N°2 : si vous voulez la liste des fenetre enfant dans un menu il suffit sur votre item de menu "fenêtres" de passer MdiList à true...

et comme par magie si vous afficher plusieurs fenetre fille leur nom va apparaitre en bas de l'item de menu "fenetre" avec un petit séparateur (pour pas les mélanger avec les items cascade, horizontal...Etc...

Commentaire de TheManu le 07/12/2007 20:03:21

Rappel (pour le parent) :
- la propriété IsMdiContainer de la fenêtre principale/parent (le this ici) doit avoir la valeur true !
- la propriété IsMdiChild indique si le formulaire est un formulaire enfant MDI.
- la propriété MdiChildren retourne un tableau d'objets Form, dont chaque objet identifie l'un des formulaires enfants MDI de ce formulaire. Il est rempli par l'appel MdiParent sur l'enfant ; ainsi les 2 se 'connaissent'.

 Ajouter un commentaire


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 Afficher une image dans une colonne DataGridViewImageColumn contenu dans une fenetre MDI fille [ par scortex84 ] Bonjour, Je rencontre un problème qui me rend fou : J'ai une fenêtre avec un datagridview que je rempli à partir d'une source. Le tableau contient un Petite question concernant une application MDI [ par maxpag ] Bonjour, J'ai conçu une application en MDI, mais se pose a moi un très gros souci, je vous explique. J'aimerai récupérer la liste de toutes les Form Fenetre Mdi [ par kikiokiller ] Bonjour,J'ai un petit souci concernant l'acces à mes winform dans mon Mdi.J'ai un bouton qui en ouvre une, un autre bouton en ouvre une autre.Sur le f Traitement d'image [ par mdichild ] Bonjour ,je suis débutante en programmation C#,mon problème est le suivant:je veux faire un logiciel de traitement d'image ,je veux faire une interfac Formulaires MDI Parents et Enfants (Visual Studio 2008 Pro) [ par Osyrys ] Bonjour, Voila, j'ai créé mon formulaire MDI parent avec a l'interieur 2 fenetre MDI enfants. je compile pour voir que tout fonctionne. ok c'est bon. Affichage Fenetre Filles [ par cled00 ] BonjourJ'ai un petit probleme d'affichage.Je crée une fenetre mère  dans laquelle je souhaite afficher une fenetre fille qui occupperait tou l'espace Détection Fermeture fenetre fille [ par ddove53 ] Salut,j'ai un form parent avec des menus.J'active des menus à condition que certaines soient ouvertes et je les désactive si le form enfant est fermé. les fenêtres MDI filles [ par sygmo ] Je developpe une petite application MDI en c#. chaque fois que je lance une même feuille fille,cette derniere s'affiche plusieurs fois. Alors mon prob


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,090 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales