Référence d'une variable dans une seconde form
Bonjour
Avec Delphi win32, je faisais souvent des boites de dialogues personnalisées dans laquelle j'utilisais des pointeurs sur des variables passées en paramètres du constructeur de mon formulaire. Avec C#, j'essaye de faire pareil mais ça ne fonctionne pas malgré l'utilisation de ref dans mes paramètres. Voilà un code exemple qui ne fonctionne pas:
Formulaire appelant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string s = "truc";
Form2 f = new Form2(ref s);
f.ShowDialog();
MessageBox.Show(s);
}
} |
Formualire appelé
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public partial class Form2 : Form
{
string _nom;
public Form2()
{
InitializeComponent();
}
public Form2(ref string nom)
: this()
{
_nom = nom;
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
_nom = "toto";
}
} |
MessageBox.Show(s); affiche toujours "truc" alors que je pensais qu'il afficherait "toto"
Question: Est-ce possible et ai-je simplement oublié un truc ?
Précision: Je viens de voir que ça fonctionne avec un objet mais pas avec un struct.
J-L