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 :
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
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; } }
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.
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); } }
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
Partager