Question: Contrôles inversés
Bonjour,
j'essaie d'intégrer une liste de question/réponse sous forme de 2 contrôles (label, checkedlistbox) dans un panel. Le nombre de ces question/réponse dépendra d'une base de donnée, mais là, c'est juste pour mettre en place le tout.
La création de ces 2 contrôles est faite via une itération for, et mon souci est que l'ordre des 2 premiers contrôles est inversé, pour ensuite revenir normalement. Cela fait:
Réponse
Question
Question
Réponse
Question
Réponse...
J'ai essayé de modifier les points de location, mais cela ne doit pas être le problème apparemment.
Voici le code:
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
|
/*Méthode pour créer l'instance de contrôles. Paramètres pour le nombre de questions et
l'ajout d'un espace vertical entre les questions*/
private void CreationControles(byte NbQuestion, int y)
{
//Création de l'instance du contrôle Label pour l'intitulé de la Question
Label Question = new Label();
//Définir la propriété du contrôle: Name."lblQuestion"=nom, suivi du paramètre NoQuestion
Question.Name = "lblQuestion" + NbQuestion;
//Définir la taille du contrôle dans le container (le contrôle Panel du Questionnaire ici)
Question.Size = new Size(this.pnlQuestionnaires.Width - 52, 39); //Taille = largeur panel -52
//Définir la location dans le container
Question.Location = new Point(10, y);
//Définir l'interdiction de redimensionner le contrôle
Question.AutoSize = false;
//Mettre un texte "provisoire" pour l'intitulé de la question. Les questions viendront ensuite depuis la base de données.
Question.Text = "Question";
//Ajouter ce contrôle dans la collection du Panel
pnlQuestionnaires.Controls.Add(Question);
//Création de l'instance du contrôle CheckedListBox pour les Réponses
CheckedListBox Reponse = new CheckedListBox();
Reponse.Name = "clbReponse";
Reponse.Size = new Size(this.pnlQuestionnaires.Width - 52, 39);
Reponse.Location = new Point(10, y+40);
Reponse.Items.Add("Réponse");
Reponse.Items.Add("Réponse2");
pnlQuestionnaires.Controls.Add(Reponse);
}
private void frmQuestionnaires_Load(object sender, EventArgs e)
{
//Appel de la méthode pour afficher les contrôles définis
//Description: Nom de la méthode (paramètre numéro de question, paramètre hauteur par rapport au haut du panel)
CreationControles(4, 100);
//Création de l'itération pour définir le nombre de questions/réponses selon la taille du Questionnaire
int y = 0; //Initialisation de la variable de position des contrôles par rapport au Top du formulaire
for (byte i = 1; i <= 10; i++)
{
if (i == 1)
y = y - 12; //1er contrôle
else
y = y + 86;
CreationControles(i, y); //Appel de la méthode
}
} |
Quelqu'un peut-il me mettre sur la voie svp? :)