Comment capter la valeur en entrant dans une cellule et en sortant d'un DAtaGrid

Résolu
aitoz Messages postés 59 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 décembre 2008 - 18 oct. 2005 à 09:26
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006 - 18 oct. 2005 à 13:23
Bonjour a tous,

Je voudrais savoir comment faire pour capter la valeur d'entrée d'une
cellule et comment la comparer a une valeur de sortie.
J'ai un Datagrid avec certaines colonnes que l'on peut modifier. Je voudrais
capter la valeur en entrée dans la cellule et la comparer une fois que le
curseur sort de cette même cellule. Ainsi je n'ai plus qu'a comparer les
deux valeurs et voir si modification il y a.

Merci de votre aide.

5 réponses

aitoz Messages postés 59 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 décembre 2008 1
18 oct. 2005 à 12:04
Ok, cool ! j'ai trouvé ! et ca marche.


Il suffit que je place ce code dans la propriété CurrentCellChange :



If Ds_Etagere.Tables(0).Rows(0).RowState = DataRowState.Added
Then



End
If

et a partir de la je peux lancer mes différentes procédures.

Merci a tous
3
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006
18 oct. 2005 à 10:11
Tu peut par exemple utiliser la propriété tag du contrôle.
Elle peut être utilisée sous forme de collection (tableau)
Et donc il te suffit d'affecter la valeur lors de l'evenement Change() de ton datagrid lorque tu le rempli (utilise une variable pour déterminer si tu est en train de le remplir ou si l'utilisateur est en train de le modifier, et affecte la valeur au tag que si tu est en train de le remplir)

Ensuite lors de l'evenement LostFocus() par exemple tu compare la valeur de ta cellule avec celle enregistrée dans la collection .Tag()
0
aitoz Messages postés 59 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 décembre 2008 1
18 oct. 2005 à 10:55
LostFocus c'est si je change de controle, si je passe du DataGrid a une textbox ! hors dans mon cas, la navigation se fait entièrement dans le Datagrid, donc je dois trouver un evenement plus proche de la ligne. Genre, des que je change de ligne je lance ma procédure de modification.

Concernant les Tag, je ne connais pas leur utilisation en VB.NET. Je vais regarder.

En fait, le but n'est pas forcément de comparer deux valeur. Je veux juste savoir si je suis en cours de modification et à partir du moment ou je suis en modification, je veux pouvoir le détecter et lancer ma procédure. Si j'avais une variable ou un evenement , ligne en cours de modif, je pourrais tout simplement dire, que si je change de ligne je lance ma procédure de modification.

Voila ! il me faut donc uniquement ce moyen de détecter quand je passe en modification de ligne. C a dire le moment ou le petit stylo vient se positionner en-tete de ligne.

Merci de votre aide
0
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006
18 oct. 2005 à 11:01
RowColChange, événement

Se produit lorsque la cellule en cours change.


Syntaxe


Private Sub object_RowColChange ([index As Integer, lastrow As String, lastcol As Integer])


La syntaxe de l'événement RowColChange comprend les éléments suivants :


Élément,
Description,
----

object,
<OBJECT id=alink_4 type=application/x-oleobject classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11></OBJECT>Expression d'objet qui correspond à un objet figurant dans la rubrique "Application".,
----

index,
Entier qui désigne le contrôle si celui-ci appartient à un
<OBJECT id=alink_5 type=application/x-oleobject classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11></OBJECT>groupe de contrôles.,
----

lastrow,
(Dans le cas d'un contrôle DataGrid)
<OBJECT id=alink_6 type=application/x-oleobject classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11></OBJECT>Expression de chaîne qui spécifie la position de ligne précédente.,
----

lastcol,
(Dans le cas d'un contrôle DataGrid) Entier qui spécifie la position de colonne précédente.


Remarques


Cet événement se produit chaque fois que l'utilisateur clique sur une cellule autre que celle en cours ou que vous changez par programmation la cellule en cours dans une sélection à l'aide des propriétés Col et Row.


L'événement SelChange se produit également lorsque l'utilisateur clique sur une nouvelle cellule, mais pas lorsque vous modifiez par programmation la plage sélectionnée sans changer de cellule en cours.


Dans le cas du contrôle DataGrid, la position de la cellule en cours est spécifiée par les propriétés Bookmark et ColIndex. La position de cellule précédente est spécifiée par les arguments lastrow et lastcol. Si vous modifiez des données, puis déplacez la position de la cellule en cours sur une autre ligne, les événements de mise à jour sont exécutés au niveau de la ligne d'origine avant qu'une autre cellule devienne la cellule en cours.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006
18 oct. 2005 à 13:23
Click sur réponse acceptée
0
Rejoignez-nous