IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Chekbox et exception


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Chekbox et exception
    bonjour,
    voila j'ai fais un code qui affiche un label suivi de chekbox dynamiquement mais quand j'exécute je reçoit une exception:
    System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet ligne 37.
    Ma question,c'est où exactement l'erreur et comment je peut la corrigé
    Merçi d'avance.
    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
     
                Qcm test = new Qcm();
     
                Question[] tab = new Question[test.get_nbQ()];
                tab = test.get_Questions();//tableau de questions
     
                int p = 35;
                int Q = 0;
                try
                {
                    for (int i = 1; i <= test.get_nbQ(); i++)
                    {
                        Q = p + 35;
     this.Controls.Add(new Label() { Name = "Q" + i, Location = new Point(57, Q), Size = new Size(1000, 30), Text = tab[i].get_libelle_Q() });
     
                        int j = 1;
     
      CheckBox[][] boxes = new CheckBox[tab[i].get_propDeQ().Count][];
                        p = Q + 28;
                        foreach (string prop in tab[i].get_propDeQ())//get_propDeQ() //retourne une ArrayList de string
                        {
     
                            boxes[i][j] = new CheckBox();//ligne 37
                            boxes[i][j].Name = "prpQ" + i + j;
     
                            boxes[i][j].Location = new Point(60, p);
                            p += 28;
                            boxes[i][j].Text = prop;
                            boxes[i][j].Size = new Size(1000, 30);
                            boxes[i][j].Checked = false;
                            j++;
                        }
                        this.Controls.AddRange(boxes[i]);
     
                    }
                }
                catch (Exception e)
                {
     
                  MessageBox.Show(e.ToString(), "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
     
            }

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Points : 109
    Points
    109
    Par défaut
    Peut tu nous dire à quoi correspond la ligne 37 de ton code, comme l'indique l'erreur. A première vu tu utilise une référence d'objet null.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu déclares boxes comme un tableau de tableaux, et tu initialises le tableau "externe", mais pas les tableaux "internes". Donc boxes[i] vaut null, et donc boxes[i][j] lève une exception...

    De toutes façons si je comprends bien ton code je ne vois pas trop l'intérêt de faire un tableau de tableaux... tu déclares ce tableau à l'intérieur de la boucle sur i, et tu accèdes toujours à l'élément i. Un tableau simple suffirait...

    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
    ...
                       CheckBox[] boxes = new CheckBox[tab[i].get_propDeQ().Count];
                        p = Q + 28;
                        foreach (string prop in tab[i].get_propDeQ())//get_propDeQ() //retourne une ArrayList de string
                        {
     
                            boxes[j] = new CheckBox();//ligne 37
                            boxes[j].Name = "prpQ" + i + j;
     
                            boxes[j].Location = new Point(60, p);
                            p += 28;
                            boxes[j].Text = prop;
                            boxes[j].Size = new Size(1000, 30);
                            boxes[j].Checked = false;
                            j++;
                        }
                        this.Controls.AddRange(boxes);
    ...

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    merçi j'ai corrigé ma faute

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  2. Exception & Try..catch
    Par PurL dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/12/2002, 15h35
  3. Réponses: 3
    Dernier message: 01/11/2002, 14h30
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo