[Débutant Poo][C#] stocké les données entre deux forms

Résolu
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 - 4 mars 2008 à 18:55
cs_Kassidy Messages postés 97 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 21 mars 2008 - 4 mars 2008 à 19:58
Bonjour,

donc j'ai une class importation chargé de se mémoriser de la valeur d'un textbox dont voici le code ci-dessous:

class importation
{
private String m_Url;

public String Url
{
get { return m_Url; }
set { m_Url= value; }
}
}

Dans ma form, lorsque je rentre une valeur dans le textbox, et que
je clique sur suivant, j'instancie ma class importation, et
j'initialise sa valeur m_Url avec la valeur du textbox, ensuite j'ouvre
une deuxième form pour afficher le valeur de m_Url sauf que là ca
affiche null, pourquoi ?

public partial class form1 : Form
{

public form1l()
{
InitializeComponent();
}

private void btnSuivant_Click(object sender, EventArgs e)
{
importation impt = new importation();
impt.Url= textBox1.Text;
test form2 = new test();
form2.Show();
this.Hide();
}
}

et la deuxième form où je veux récupérer la valeur dans la class importation:

public partial class test : Form
{
public test()
{
InitializeComponent();
}

private void test_Load(object sender, EventArgs e)
{
importation titi = new importation();
label1.Text = titi.Url; //donc là ca m'affiche null ?
}

}

Donc voilà, j'ai deux questions:

1 - pourquoi lorsque j'instancie ma class importation dans ma
deuxième form et que je récupère la valeur de m_Url, ca affiche null
dans mon label?

2 - quel solution dois-je utiliser alors pour pouvoir stocker des
informations de la première form et les récupérer dans une deuxième
form ?

Merci d'avance.Configuration: Windows XP
Firefox 2.0.0.12

PS: bien entendu j'ai omis volontairement les namespaces et les using pour vous faciliter la lecture.

5 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
4 mars 2008 à 19:42
private void test_Load(object sender, EventArgs e)
{
    // ici tu crées un nouvel objet titi qui existe nulle part ailleurs.
    importation titi = new importation();
    // null, c'est normal puisque qu'il vient d'être crée.
    label1.Text = titi.Url; //donc là ca m'affiche null ?
} // ici titi n'existe plus, il peut être ramassé par le GC.


 


private void btnSuivant_Click(object sender, EventArgs e)
{
    // ici tu crées un nouvel objet impt qui existe nulle part ailleurs.
    importation impt = new importation();
    impt.Url= textBox1.Text;
    test form2 = new test();
    form2.Show();
    this.Hide();
} // ici impt n'existe plus, il peut être ramassé par le GC.
3
cs_Kassidy Messages postés 97 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 21 mars 2008 3
4 mars 2008 à 19:47
Salut,

Sauf erreur de ma part, là tu crée deux objet complètement independant l'un de l'autre. Il faut que tu passe le 1er objet créer



en parametre, pour pouvoir recupérer ses informations, par exemple :






private Importation titi;






Public Test(Importation importation)
{
    titi = importation;
}



et lorsque tu crée une instance de ta classe Test tu fait :

Importation impt = new Importation();
impt.Url = textBox1.text;
Test test = new Test(impt);
...
3
cs_Kassidy Messages postés 97 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 21 mars 2008 3
4 mars 2008 à 19:58
Je ne pense pas que dans ce cas mettre la classe statique soit conseillé, pour ne pas te dire de bétise sur le pourquoi du comment je te recommande de lire ceci :

http://msdn2.microsoft.com/fr-fr/library/79b3xss3(VS.80).aspx
3
cs_Kassidy Messages postés 97 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 21 mars 2008 3
4 mars 2008 à 19:47
oops désolé j'ai mis trop de temps à répondre...
0

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

Posez votre question
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 1
4 mars 2008 à 19:50
c'est pas grave Kassidy,

j'ai compris pour l'histoire des objets, merci à vous deux.

Entre temps, j'ai transformer ma classe importation en classe static, ca marche aussi. Est-ce conseillé ? où devrai-je faire comme tu le dis, passer ma class en paramètre ?
0
Rejoignez-nous