Probleme avec GroupgBox et Textbox
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:
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:
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:
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:
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