Bonsoir à tous ,

Je suis actuellement entre un de faire une application (répertoire) pour m'entrainer durant cette période de vacances mais je rencontre un petit soucis lors d'une suppression et je ne comprends pas pourquoi car j'ai repris un exemple de mon cours à part que c'est une ListBox au lieu d'une ComboBox mais voilà en appliquant la meme méthode , j'ai un petit Out of Range :

PARTIE PROG COURS :

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
 
   private void cbxProduit_SelectedIndexChanged(object sender, EventArgs e)
        {
            int i = cbxProduit.SelectedIndex;
 
 
            txtDesignation.Text = c.EnsProduit.ElementAt(i).Designation;
            txtPrixUnitaire.Text = c.EnsProduit.ElementAt(i).PrixHT.ToString();
            txtCategorie.Text = c.EnsProduit.ElementAt(i).Categorie.LibelleCat;
        }
 
private void btnSupp_Click(object sender, EventArgs e)
        {
            int i = cbxProduit.SelectedIndex;
 
            if (ProduitDAO.Delete(c.GetUnProduit(i)) == true)
            {
                cbxProduit.Items.RemoveAt(i);
                c.EnsProduit.RemoveAt(i);
 
                if (c.GetNbProduit() != 0)
                {
                    cbxProduit.SelectedIndex = 0;
                    txtDesignation.Text = c.EnsProduit.ElementAt(0).Designation;
                    txtPrixUnitaire.Text = c.EnsProduit.ElementAt(0).PrixHT.ToString();
                    txtCategorie.Text = c.EnsProduit.ElementAt(0).Categorie.LibelleCat;
 
 
                }
                else
                {
                    cbxProduit.Text = "";
 
                    txtDesignation.Text = "";
                    txtPrixUnitaire.Text = "";
                    txtCategorie.Text = "";
                }
 
 
            }
            else
            {
                MessageBox.Show("Erreur lors de la suppression");
            }
        }
PARTIE PROG - PERSONNELLE :

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
  private void listContact_SelectedIndexChanged(object sender, EventArgs e)
        {
            int i = listContact.SelectedIndex;
 
            txtFirstName.Text = r.lesContacts().ElementAt(i).Prenom;
            txtLastName.Text = r.lesContacts().ElementAt(i).Nom;
            txtMail.Text = r.lesContacts().ElementAt(i).Email;
            txtFixe.Text = r.lesContacts().ElementAt(i).Fixe;
            txtAdress.Text = r.lesContacts().ElementAt(i).Adresse;
            txtMobile.Text = r.lesContacts().ElementAt(i).Mobile;
 
 
 
 
        }
 
 private void supButton_Click(object sender, EventArgs e)
        {
            int i = listContact.SelectedIndex;
 
            contact c = r.lesContacts().ElementAt(i);
 
            listContact.Items.RemoveAt(i);
            r.SupprimerContact(c.Nom, c.Prenom);
 
            if (r.GetNbContact() != 0)
            {
                listContact.SelectedIndex = 0;
                txtAdress.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Adresse;
                txtFirstName.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Prenom;
                txtLastName.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Nom;
                txtMobile.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Mobile;
                txtMail.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Email;
                txtFixe.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Fixe;
            }
 
        }
C'est moins complet que la premiere partie mais c'est histoire de tester et donc j'ai un Out Of Range des que je clique sur "Supprimé" , j'ai rectifié le soucis en appliquant
le morceau code suivant :

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
 if(listContact.SelectedIndex != - 1)
            {
                txtFirstName.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Prenom;
                txtLastName.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Nom;
                txtMail.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Email;
                txtFixe.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Fixe;
                txtAdress.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Adresse;
                txtMobile.Text = r.lesContacts().ElementAt(listContact.SelectedIndex).Mobile;
            }
            else
            {
                txtFirstName.Text = r.lesContacts().ElementAt(0).Prenom;
                txtLastName.Text = r.lesContacts().ElementAt(0).Nom;
                txtMail.Text = r.lesContacts().ElementAt(0).Email;
                txtFixe.Text = r.lesContacts().ElementAt(0).Fixe;
                txtAdress.Text = r.lesContacts().ElementAt(0).Adresse;
                txtMobile.Text = r.lesContacts().ElementAt(0).Mobile;
            }
Mais j'aimerai bien savoir pourquoi dans la premiére partie sa fonctionne nickel et dans la deuxieme partie sa plante , je sais que sa vient du SelectedIndex car j'ai regarder et sa valeur reste à -1 donc normal que sa plante mais je ne comprends pas pourquoi pas y prends pas la valeur que je lui assigne lors de la suppression alors que dans la premiére partie sa le fait parfaitement .

Merci d'avance à tous .