Panel Form

Messages postés
75
Date d'inscription
mercredi 9 novembre 2011
Statut
Membre
Dernière intervention
27 avril 2013
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 28 avril 2013 à 10:24
Bonjour
J'ai un form1 qui contient un panel et un button1 quand je clic sur le butto1 j'appel un form2 qui se déplace dans le panel1 voila le code :

Dim f As New Form2()
f.TopLevel = False
Me.Panel1.Controls.Add(f)
f.Show()

mon problème je veux accéder au form2 qui se déplace sur la form2 j’essaie par ce code :

form1.panel1.form2
mais ça marche pas
Merci pour vos aides.
Afficher la suite 

5 réponses

0
Merci
Bonjour,
Un From est un conteneur et ne peut être contenu.
Au lieu d'ajouter une Form, ajoute un GroupBox ou un autre panel...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
15 juillet 2014
4
0
Merci
Bonjour,

Il faut rajouter le name à la création
Dim f As New Form2()
f.TopLevel = False
f.Name = "SubForm2"
Me.Panel1.Controls.Add(f)
f.Show()

Et comme ceci pour y accéder
Dim frm2 As Form2 = CType(Me.Panel1.Controls("SubForm2"), Form2)
Commenter la réponse de foliv57
0
Merci
Erreur...
Ucfoutu a rectifié mes dires, et m'a dit:
Tu as dit
"Un From est un conteneur et ne peut être contenu."Ce n'est pas vraiment tout-à-fait exact.
Je m'explique :
- Il est vraisemblable que VB.Net (comme VB6, d'ailleurs) n'ait pas prévu cette possibilité de façon native.
- il n'en demeure pas moins vrai que, dès lors que les deux fenêtres sont de frais fenêtre Windows -donc dotées d'un hwnd), on peut toujours rendre celle que l'on veut parente de l'autre, que l'autre soit ou non un Form.
voici, par exemple et analogie, ce que je mettrais dans un bouton de Form1 pour que son Frame Frame1 devienne le parent du form Form2. Fonctionne sans faille.
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Private Sub Command1_Click()
SetParent Form2.hWnd, Frame1.hWnd
Form2.Show
End Sub


Vu que je m'appretais à aller faire un tour en plongé j'ai pas trop réflechi et j'ai répondu:
Merci, je m'en suis rendu compte en voyant le message de foliv57 juste après...
Mais c'est que je n'ai pas l'habitude de procéder ainsi, j'aurais l'impression de vouloir charger mon tracteur dans ma renault 5...



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
15 juillet 2014
4
0
Merci
J'avoue que j'ai surtout voulu répondre à la question "comment retrouver un control dans la collection de controls d'un panel".
Je ne voulais pas trop rentrer dans le débat de l'intéret de contenir une Form dans un Panel qui peut paraitre douteux.
Il est évident que si la Form principale ne contient que le panel et les boutons et qu'on affiche des sous fenêtres dans le panel, il vaut mieux utiliser la technique de la Form mdi parente plutôt qu'un panel.
Maintenant ania5 a peut être une utilisation particulière qui nécessite cette technique, et comme elle fonctionne...
J'ai déjà vu des controls permettant de docker des sous fenêtres à la manière de visual studio avec cette technique. Donc pourquoi pas.
Commenter la réponse de foliv57
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
Je ne voulais pas trop rentrer dans le débat de l'intéret de contenir une Form dans un Panel

Cela peut arriver, notamment (mais pas seulement) si l'on veut des menus différents sur un form et l'autre
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu