1217meyrin
Messages postés159Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention 6 février 2007
-
13 déc. 2005 à 07:21
1217meyrin
Messages postés159Date d'inscriptionlundi 5 avril 2004StatutMembreDerniè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.
malhivertman1
Messages postés489Date d'inscriptionmardi 16 novembre 2004StatutMembreDernière intervention22 novembre 20071 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.
++
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 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é )
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 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...
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 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 ?
1217meyrin
Messages postés159Date d'inscriptionlundi 5 avril 2004StatutMembreDerniè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?