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
Formualire appelé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
MessageBox.Show(s); affiche toujours "truc" alors que je pensais qu'il afficherait "toto"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"; } }
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
Partager