Bonjour, voila j'ai un formulaire avec un texbox et un groupbox (contenant des radiobuttons), le probleme est que je n'arrive pas a recuperer les valeurs des champs :
- voici le code de creation du textbox :
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 TextBox maTextBox = new TextBox();
 
            // Il y a-t-il une réponse par défaut ? (cf. noeud <defaultreponse>
            if (unNoeud.SelectSingleNode("reponses/defaultreponse") != null)
                maTextBox.Text = unNoeud.SelectSingleNode("reponses/defaultreponse").InnerText;
 
            // Valeur de l'attribut "name" de la balise <question> en cours
            if (unNoeud.Attributes["name"] != null)
                maTextBox.Name = unNoeud.Attributes["name"].Value;
 
 
 
            maTextBox.Width = LARGEUR_CONTROLES;
 
            // Il y a-t-il un nombre maximal de caractères ? (cf. noeud <maxCharacters>)
            if (unNoeud.SelectSingleNode("reponses/maxCharacters") != null)
                    maTextBox.MaxLength = int.Parse(unNoeud.SelectSingleNode("reponses/maxCharacters").InnerText);
 
            // Calculer le nombre de lignes qui devront être affichées
 
            if (maTextBox.MaxLength > 0)
            {
                int numLines = (maTextBox.MaxLength / CARACTERES_PAR_LIGNE) + 1;
 
                // Calculer la largeur de la TextBox, et par conséquent s'il y a lieu
                // d'avoir des barres de défilement
                if (numLines == 1)
                    maTextBox.Multiline = false;
                else
                {
                    if (numLines >= 4)
                    {
                        maTextBox.Multiline = true;
                        maTextBox.Height = 4 * HAUTEUR_PAR_LIGNE;
                        maTextBox.ScrollBars = ScrollBars.Vertical;
                    }
                    else
                    {
                        maTextBox.Multiline = true;
                        maTextBox.Height = numLines * HAUTEUR_PAR_LIGNE;
                        maTextBox.ScrollBars = ScrollBars.None;
                    }
                }
            }
 
            // Création d'un Label
 
            Label monLabel = new Label();
            monLabel.Name =   "Label";
            if (unNoeud.SelectSingleNode("text") != null)
                monLabel.Text = unNoeud.SelectSingleNode("text").InnerText;
 
            monLabel.Width = LARGEUR_CONTROLES;
 
            // Ajout à la collection
            monLabel.Location = unEmplacement;
            desControles.Add(monLabel);
            unEmplacement.Y += monLabel.Height;
 
            maTextBox.Location = unEmplacement;
            desControles.Add(maTextBox);
            unEmplacement.Y += maTextBox.Height + 10;
 
            this.Height += Emplacement.Y;       // Hauteur questionnaire 
            return unEmplacement;
quand j'essaye de recuperer sa valeur je fais ceci et il ne me renvoie rien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 TextBox t = (TextBox)monControle;                  
                        MessageBox.Show("textbox" + t.Text);
                        break;
pour le groupbox je n'arrive pas a parcourir les radiobuttons car selon lui il n'y a pas d'enfant au groupbox, poutant l'affichage est correct :
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
   XmlNode text = question.SelectSingleNode("text");
            string NomQuestion = text.InnerText;
 
 
            GroupBox gb = new GroupBox();
            RadioButton rb = new RadioButton();
 
            gb.Enabled = true;
            gb.Width = 300;
            gb.Height = 50;
            gb.Name = question.Attributes["name"].Value;
 
 
 
            // N"cessaire pour positioner les RadioButtons et redimensionner le GroupBox les contenant
            Point monRadioPoint = new Point(5, 10);
 
            if (question.SelectSingleNode("reponses/defaultreponse") != null)
            {
                monRadioPoint.Y += 20;
 
                rb.Text = question.SelectSingleNode("reponses/defaultreponse").InnerText;
                rb.Location = monRadioPoint;
                rb.Name = "radiobutton";
                gb.Controls.Add(rb);
                gb.Height += 20;
                rb.Focus();
            }
            else
            {
                XmlNodeList reponses = question.SelectNodes("reponses/reponse");
 
                foreach (XmlNode reponse in reponses)
                {
                    monRadioPoint.Y += 20;
                    rb = new RadioButton();
                    rb.Name = "radiobutton";
                    rb.Text = reponse.InnerText;
                    rb.Location = monRadioPoint;
                    gb.Controls.Add(rb);
                    gb.Height += 20;
                }
            }
 
 
            // Création d'un Label
            Label monlabel = new Label();
            monlabel.Text = NomQuestion;
            monlabel.Name = "label";
 
            // Ajout à la collection
            monlabel.Location = unEmplacement;
            desControles.Add(monlabel);
            desControles.Add(gb);
            gb.Location = unEmplacement;
 
 
            unEmplacement.Y += gb.Height + 50;
            this.Height += Emplacement.Y;       // Hauteur questionnaire 
            return unEmplacement;

quand je recupere la valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
GroupBox gb2 = monControle as GroupBox;
 
 
                        for (int i =0; i<gb.Controls.Count;i++)
                        {
                            if (((RadioButton)gb.Controls[i]).Checked)
                                MessageBox.Show(((RadioButton)gb.Controls[i]).Text.ToString());
                        }


Si vous pouvez m'aider ce serait génial j'ai vraiment du mal a trouver une solution