Inserer une Form dans une Form... Possible?

DiJiTooL Messages postés 78 Date d'inscription samedi 4 août 2001 Statut Membre Dernière intervention 29 mars 2007 - 19 févr. 2007 à 12:43
cs_Eleona Messages postés 5 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 25 avril 2013 - 17 avril 2013 à 22:35
Bonjour,

J'aimerais réutilisé une form que j'ai créer pour mon appli dans une autre partie de mon appli...
Je m'explique, C'est la form "SelectMachine" lorsque l'utilisateur veut se connecter à une machine, la form s'ouvre, et j'aimerais utiliser cette même form dans la form "EnvoyerFichier", main sans, cette fois, qu'il y ai besoin d'ouvrir la form "SelectMachine", j'aimerai incruster la form dans "EnvoyerFichier", de manière à ce que l'utilisateur ai tout à porter de main.
Pensez vous que cela soit possible?

Merci d'avance

10 réponses

cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
19 févr. 2007 à 12:54
Salut,
Euh, une forme MDI ?

<hr />
-Blog-
0
DiJiTooL Messages postés 78 Date d'inscription samedi 4 août 2001 Statut Membre Dernière intervention 29 mars 2007
19 févr. 2007 à 13:54
Qu'est-ce que tu entends par form MDI?
0
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
19 févr. 2007 à 14:26
Fait une petite recherche sur google!
MDI sur MSDN

<hr />
-Blog-
0
DiJiTooL Messages postés 78 Date d'inscription samedi 4 août 2001 Statut Membre Dernière intervention 29 mars 2007
20 févr. 2007 à 13:20
Oui mais non ce n'est pas une form MDI c'est une form standard...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PiterTheWood Messages postés 48 Date d'inscription samedi 19 avril 2003 Statut Membre Dernière intervention 23 mars 2007 1
21 févr. 2007 à 20:53
Oui c possible, tu peux y arriver avec l'utilisation des API Windows (Unmanaged code).

La librairieà utiliser c'est "user32.dll".
La fonction à utiliser c'est "SetParent".

Voici la définition de la fonction SetParent :
HWND SetParent(
    HWND hWndChild,
    HWND hWndNewParent
);

Type :HWND handle long

Les paramètres sont :
hWndChild = Le handle du contôle, la feuille, etc.. que tu veux déplacer
hWndNewParent = Le handle du contrôle parent que tu que le contrôle précédement définie soit placé
0
seb8327 Messages postés 4 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 7 mai 2007
6 mars 2007 à 19:06
Salut,
Il existe une autre méthode (peut être un peu plus simple):

     FormInserer formI = new FormInserer;
     formI.TopLevel = false;
     formI.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
     formI.Size = formCourante.Size;
     formI.BringToFront();
     formI.Visible = true;
     formCourante.Controls.Add(formI);

où formI est la form à insérer dans formCourante. Il est aussi possible d'ajouter la Form à insérer dans un panel par example.
0
cs_saly2009 Messages postés 4 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 3 avril 2011 2
15 févr. 2010 à 01:50
peux tu m' expliquer ce code stp.c'est quoi forminserer ?
0
cs_nycolas Messages postés 1 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 1 mai 2010
1 mai 2010 à 12:10
Pour préciser le message de seb8327, qui est la bonne méthode à utiliser:

Si on veut insérer une form "FormIncluse" dans une form "FormParent", en passant par un Panel par exemple:[list]
[*] on part du principe que les form "FormParent" et "FormIncluse" ont déjà été créées (sinon, depuis l'explorateur de solution, bouton droit sur le nom du projet, ajouter, formulaire windows)
[*] ajouter dans le design de la "FormParent" un panel (en le faisant glisser depuis le groupe "Conteneur" de la "Boîte à outils" regroupant tous les contrôles disponibles).
[*] Ensuite, dans la "FormParent", mettre ce code pour afficher la "FormIncluse":
FormIncluse formIncluse = new FormIncluse();
formIncluse.TopLevel = false;
formIncluse.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
panel.Controls.Add(formIncluse);

/listVoilà, c'est tout simple...
0
toof89 Messages postés 6 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 24 mai 2010
4 mai 2010 à 16:19
Bonjour,

la méthode pour inclure un formulaire dans un autre a très bien fonctionner pour moi (cependant, il était nécessaire pour moi de faire toutes les étapes qu'à décrit seb8327, sinon mon formulaire n'apparaissait pas).

Petite question : en imaginant que j'ai un formulaire possédant 2 panels. Dans chacun des ces panels, j'aimerais ajouter un autre formulaire (j'utilise la méthode décrite précédemment) mais j'aimerais que chacun des formulaires se lance dans un thead différent pour pouvoir effectuer des opérations en parallèles pendant qu'on les contrôle dans le formulaire principal (via un menu ou des boutons).
=> Cela est il possible ?? Je sais que lorsque l'on lance 2 formulaires, chacun dépend d'un thread différent (enfin je crois ) donc il doit être possible de le faire avec des formulaire imbriqué.

Le but est de pouvoir piloter une webcam pour afficher une vidéo et en même temps capturer des images pour les analysées.

Merci beaucoup à toute la communauté ^^.
0
cs_Eleona Messages postés 5 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 25 avril 2013
17 avril 2013 à 22:35
Bonjour,

je me permet de revenir sur ce messages (malgrés sont ancienneté car j'ai un petit probleme).

J'ai un form1 qui est ma form principal et une 2eme form, je voulais intégré ma form2 dans ma form1 pour cela j'ai utilisé le code proposé par seb8327

FormInserer formI = new FormInserer;
     formI.TopLevel = false;
     formI.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
     formI.Size = formCourante.Size;
     formI.BringToFront();
     formI.Visible = true;
     formCourante.Controls.Add(formI);


Je voudrais a partir d'un bouton présent dans ma form2, efface ma form2 contenu dans ma form1 pour qu'une form3 la remplace (dans mon form1).


J'ai bien essayer un code du type :

 Form3 FTrois = new Form3 ();
            FTrois.TopLevel = false;
            FTrois.Top = 10;
            FTrois.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            FTrois.Size = this.Size;
            FTrois.BringToFront();
            FTrois.Visible = true;
            this.Parent.Controls.Remove(Form2);
            this.Parent.Controls.Add(FTrois);
            


j'ai également essayer de rajouter Form1 accueil = new form1(); au debut afin de mettre
 
accueil.Control.Remove(MaForm2); 
accueil.Control.Add(FTrois);



Mais aucune de ses proposition n'a fonctionné, l'un de vous pourrez m'aider si vous plais.

(Si vous auriez préféré que je recréer une discussion, dites le moi y aura pas de problème, je n'ai pas voulus m'incruster ".
0
Rejoignez-nous