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 :
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
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;
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 TextBox t = (TextBox)monControle; MessageBox.Show("textbox" + t.Text); break;
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
Partager