Bonjour à tous,

Voila j'ai un bug que je ne comprend pas, j'essai de faire quelque chose de plutôt simple, j'ai des colonnes dans une listview et je veux récupérer le texte de la première colonne.

Je fait ça dans d'autre Windows Forms mais avec celle la impossible je comprend pas mon erreur. si quelqu'un pouvais jeter un petit coup d’œil a mon code ça serais sympa.

J'ai essayé avec plusieurs événements mais rien n'y fait je ne comprend pas. Lorsque que je sélectionne un item pour la première fois c'est ok, par contre la seconde fois j'ai l’erreur

Voici le code :

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  private int get_selected_id_nomenclature()
        {
            //J'ai aussi essayé comme ça
 
            //string my_index = listView1.SelectedItems[0].SubItems[0].Text.ToString();
            //int index = int.Parse(my_index);
            //MessageBox.Show(listView1.SelectedItems[0].SubItems[0].Text.ToString());
            //return index;
            return 0;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            //TODO id OF selected item
            int selected_nomenclature = this.get_selected_id_nomenclature();
 
            Full_rework_GPAO.IHM.Modif_OF_composition update_of_compo = new Modif_OF_composition();
            update_of_compo.Id_of = selected_nomenclature;
            update_of_compo.Show();
            this.Hide();
        }
 
        private void get_etat(int id)
        {
 
            Full_rework_GPAO.Logic.Model.FO fo = new Logic.Model.FO(id);
            Console.Write(id);
 
            string my_etat = fo.get_etat_by_id();
            fo.State = Convert.ToInt16(my_etat);
 
            if (fo.State == 0)
            {
                radio_reserv.Checked = false;
                radio_sold.Hide();
                radio_cancel.Hide();
            }
            else if (fo.State == 1)
            {
                radio_reserv.Checked = true;
                radio_sold.Show();
                radio_cancel.Show();
            }
            else if (fo.State == 2)
            {
                radio_reserv.Hide();
                radio_sold.Checked = true;
                radio_cancel.Show();
            }
        }
 
        private int get_selected_item_id()
        {
            if (listView1.SelectedItems.Count <= 0)
            {
                return 999;
            }
            int intselectedindex = listView1.SelectedIndices[0];
            if (intselectedindex >= 0)
            {
                String text = listView1.Items[intselectedindex].Text;
                MessageBox.Show(listView1.Items[intselectedindex].Text);
                return Convert.ToInt16(listView1.Items[intselectedindex].Text);
            }
            return 9999;
 
        }
 
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
            var my_index = get_selected_item_id();
            this.get_etat(my_index);
        }
        private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            //var my_index = get_selected_item_id();
            //this.get_etat(my_index);
        }
Merci d'avance de votre aide !