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.
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.
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 :
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 ?