Class Form et nouvelle instance

cs_bbo Messages postés 1 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 29 août 2011 - 29 août 2011 à 19:08
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 29 août 2011 à 19:51
Bonjour,

Je travail actuellment avec VB.net et j'ai un problème avec
la création d'instance dans des procèdure.

J'ai 2 form(form1 et form2) et j souhaite faire le remplissage d'un textbox
par une procédure extèrieur. Ceci est un exemple simple de ce que je ne comprend pas:

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim fr2 As New Form2

fr2.TextBox1.Text = "25874"
Me.TextBox1.Text = fr2.TextBox1.Text
Trans_STR()
End Sub


Public Sub Trans_STR()

Dim fr1 As New Form1
Dim fr2 As New Form2

fr1.TextBox2.Text = fr2.TextBox2.Text
End Sub

dans la procédure Sub Trans_STR() le controle fr2.TextBox2.Text et fr1.TextBox2.Text
est vide.
Je pensais que la form2 instancié par fr2 donnait en héritage les valeurs
du control fr2.TextBox2.Text c'est à dire transmet la valeur "25874".
L'aide que je demande si possible, est de comprendre ce qui se passe et
pourquoi l'instance fr1 et fr2 dans la Sub ne renseigne pas ma Form1.

Merci à tous pour votre aide





End Class

1 réponse

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
29 août 2011 à 19:51
Bonjour,

Le New créé de nouvelles instances.
Du coup, les données modifiées ne sont le pas sur la bonne form.

Dans ce cas, soit tu passe les forms à traiter par paramètre, soit par variables globales.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous