Passer d'une form à l'autre

1217meyrin Messages postés 159 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 février 2007 - 13 déc. 2005 à 07:21
1217meyrin Messages postés 159 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 février 2007 - 14 déc. 2005 à 21:45
Bonjour,
j'ai deux fenetre ouverte en vb.net. j'aimerais quand je ferme une des fenetre avec un bouton, remplir un label qui se trouve sur l'autre fenetre.
j'ai essayé avec
dim f as new fenetre()
f.label.text="essai"
mais, premièrement ca ralenti le programme et ca ne le fait pas.

10 réponses

malhivertman1 Messages postés 489 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 22 novembre 2007 1
13 déc. 2005 à 08:48
Normalement ca marche directe, disons que tes 2 fenetres s'apel form1 et form2. Et ben tu met ta commande form2.label1.caption = "???" dans ta page form1 avant de mettre ta commande pour fermer.
Sinon si ca marche pas, ta qu'a mettre visible=false au lieu de la fermer.
Dsl de pas pouvoir t'aider a 100% mais je n'ai pas VB sur ce poste.
++
0
malhivertman1 Messages postés 489 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 22 novembre 2007 1
13 déc. 2005 à 08:48
Ah pardon j'avais pas vu que c'été VB.NET, moi je parlais en vb 6 , je sais pas si ca change beaucoup
++
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
13 déc. 2005 à 09:16
Salut,

Si tu es en .NET2, rien de plus facile :
My.Forms.Form1.Label.Text = "essai"
(en gros, exactement comme la solution de malhivertman1 mais avec My devant )

après, si tu es en 1.x, il va falloir tricher un peu. Je suppose que tu crées ta deuxième form à partir de la 1ère ? Dans ce cas, met dans ta 2ème Form :

Private _Label As System.Windows.Forms.Label

Public Sub New(Label As System.Windows.Forms.Label)
' ...
_Label = Label
End Sub

Public Sub Button_Click(Sender As Object, E As EventArgs) Handles Button.Click
' le OnClick de ton Bouton
_Label.Text = "essai"
End Sub

Et dans ta 1ère Form, tu n'as plus qu'à faire :
Dim DeuxiemeForm As New Form2(Me.Label1)
DeuxiemeForm.ShowDialog()

(en plus, je me rappelle vaguement qu'il y a plus facile, mais je me souviens pas exactement comment, je dois pas encore être bien réveillé )

Nurgle
0
1217meyrin Messages postés 159 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 février 2007
13 déc. 2005 à 19:42
J'ai essayé, mais ca ralentis fortement le prog. auriez-vous l'autre méthode que vous pensiez?
0

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

Posez votre question
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
13 déc. 2005 à 21:43
C'est bizarre, j'utilises ça assez souvent, et ça ne fait pas ça...
Tu testes le programme sur quoi ? un pentium 2 avec 64Mo de RAM ?

Parce que, quand au début tu dis que le "dim f as new fenetre()" ralenti ton programme, et ben ça ne devrait pas. A la limite il pourrait y avoir un petit temps de chargement, mais même une Form très chargée ne devrait pas faire ça.
Donc...c'est bizarre comme problème, et en plus je ne crois pas qu'il y ait de méthode moins couteuse en mémoire (ou en CPU) que ça...

Nurgle
0
1217meyrin Messages postés 159 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 février 2007
13 déc. 2005 à 21:55
c'est juste comme je fait:

je suis dans form2 avec form1 (qui contient label) dessous et quand je clic dans form2 sur le bouton ok j'écris

dim form1 as new form1()
form1.label.text="essai"

ok ou il y a des modifs?

merci
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
14 déc. 2005 à 13:33
Non, là tu recrées une nouvelle form1 !!
en gros, tu n'ouvres pas celle qui existe déjà, tu en crées une autre, que tu peux faire apparaitre avec Form1.Show()

Il faut que tu passes l'objet que tu veux modifier à la Form2 (tu peux passer Me.Label, ou même Me, tou simplement )

Mais je trouve quand même ça étrange que ça te ralentisse le programme...tu utilises quelle version du framework ?

Nurgle
0
1217meyrin Messages postés 159 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 février 2007
14 déc. 2005 à 16:58
J'utilise vb.net 2002.
j'ai essayé de faire comme tu m'as dit mais il me renvoye une erreur
Dim DeuxiemeForm As New Form2(Me.Label1) Me.label1 met une erreur?
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
14 déc. 2005 à 17:04
Quel est le message d'erreur ??

Nurgle
0
1217meyrin Messages postés 159 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 février 2007
14 déc. 2005 à 21:45
il me retourne argument trop nombreux pour public sub
0
Rejoignez-nous