Bonjour,

Je viens à vous car j'ai un problème concernant un datagridview accouplé à des controles pour modifier la ligne en cours.

Pièce jointe 465821

Jusqu'à maintenant, c'est bon.
Maintenant, je souhaite pouvoir modifier:

-> Le "début" de la ligne N+1 quand "fin" de la ligne N est modifié (avec la même valeur)
-> Le "fin" de la ligne N-1 quand "début" de la ligne N est modifié (avec la même valeur)

Donc j'ai codé l'évenement "Currentchanged de la binding source permettant de définir la ligne précedente et la ligne suivante :

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
 
private void bindingList_CurrentChanged( object sender, EventArgs e )
        {
            if (bindingList.Position == 0)
            {
                previous = null;
                iprevious = -1;
                next = bindingList.List[1] as TNG;
                inext = 1;
            }
            else if (bindingList.Position == (bindingList.Count - 1))
            {
                previous_troncon = bindingList[bindingList.Count - 2] as TNG;
                iprevious_troncon = bindingList.Count - 2;
                next_troncon = null;
                inext_troncon = -1;
                return;
            }
            else
            {
                previous = bindingList[bindingList.Position - 1] as TNG;
                iprevious = bindingList.Position - 1;
                next= bindingList[bindingList.Position + 1] as TNG;
                inext_ = bindingList.Position + 1;
            }
        }
et finalement, j'ai également codé, pour les deux numericupdown, l'evenement ValueChanged

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
        private void nud_Debut_ValueChanged( object sender, EventArgs e )
        {
            if (previous != null)
            {
                previous.fValFin = (float)nud_Debut.Value;
 
                bindingList.ResetItem(iprevious);
            }
        }
 
        private void nud_Fin_ValueChanged( object sender, EventArgs e )
        {
            if (next != null)
            {
                next.fValDeb = (float)nud_Fin.Value;
 
                bindingList.ResetItem(inext);
            }
        }
Le problème vient du faite que quand change de ligne (N -> X) la ligne change, donc les deux numericupdown sont modifiés (suivant la valeur de la ligne X). Le probleme est que l'évenement bindinglist_CurrentChanged arrive après. Ce qui veux dire que le changement de ligne provoque le changement de la valeur de "fin" de la ligne N-1 et de "Début" de la ligne N+1 par rapport à la ligne X.

Je n'arrive pas à désactiver les deux évenements des numericupdown avant.

J'espere que j'ai été assez clair.

Merci de votre aide.
Cordialement.
Flow