Cherche évenement Datagridview

Signaler
Messages postés
19
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
12 août 2011
-
Messages postés
19
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
12 août 2011
-
Bonjour,

Je travaille actuellement sur VB 2010 et je cherche l'evenement du datagridview qui permet d'actualiser un calcul lorsque je saisie un chiffre au clavier, et non quand je passe d'une cellule a l'autre.
Je n'arrive pas le faire fonctionner avec l'evenement Keypress (il ne se passe rien...).

Quelqu'un peut-il m'aider ???

8 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut

Et _CellValueChanged ne fonctionne pas comme tu le souhaites ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
19
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
12 août 2011

Salut jack,

Non malheureusement l'evenement CellValueChanged ne fonctionne pas non plus comme je veux. Il marche bien mais lorsqu'on change de cellule...et non quand on écrit dans la cellule.

Autre idée ?? J'en ai deja testé pas mal mais rien ne marche.
Help me
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Explique :
"on change de cellule" : tu veux dire entrer une valeur manuellement
"on écrit dans la cellule" : tu veux dire par programme ?

Dans ce second cas, puisque c'est ton programme qui modifie la valeur, tu peux aussi demander la réactualisation de ton calcul, non ?

(qqs min plus tard)
Oui, tu as raison, il n'y a rien qui réagit aux saisies clavier.
Bizarre
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Si si : Le KeyPress réagit à la saisie.
Le CellValueChanged ou CurrentCellChanged réagissent à la validation (Tab ou Enter)
Messages postés
19
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
12 août 2011

Oui, c'est ca je veux qui reagisse a la saisie d'un chiffre dans une cellule d'un datagridview.
Comment as tu fais? Tu avais l'air de douter, mais dans ton dernier message cela marche. Pour moi il ne se passe rien : /

Voici un bout de mon programme :

Private Sub Datagridview1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Datagridview1.KeyPress
Cal() 'Sub qui effectue le calcul désiré et le saisie dans une textbox
Me.Refresh()
End Sub
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Pour tout te dire, je n'y connais rien en VB.Net et j'apprends au fur et à mesure des questions.
Dans ton cas, j'ai installé une DataGridView sur une forme et, c'est vrai, aux premiers tests, les procédures ne se déclenchaient pas.
Puis, je me suis dit que si aucune ne réagissait, c'est peut-être parce que le composant était rendu muet par un quelconque paramètre global dans le composant et, en faisant cette recherche, je suis tombé sur le menu "Déboguer" + "IntelliTrace".
J'ai bidouillé dans les options proposées (*) et, dans la fenêtre de Sortie, j'ai maintenant des infos qui ressemblent à ça (en saisissant 32 dans la cellule 1-1) :
-- CellEnter 1-1
-- CellBeginEdit 1-1
Form_KeyPress, 3
Form_KeyPress, 3
Form_KeyPress, 2
-- CellValueChanged 1-1
-- CellEndEdit 1-1
-- CurrentCellChanged
-- CellEnter 1-2
En sachant que les lignes qui commencent par "--" sont des Debug.Print que j'ai mis dans les events du DataGridView.
Tu remarqueras que je n'ai tapé qu'un seul "3" mais que l'event s'est déclenché deux fois, je ne sais pas pourquoi.

En utilisant, en balbutiant, avec IntelliTrace (qui peut te dire par où tu passes), on s'aperçoit que les events KeyPress sont interceptés par le KeyPress de la forme, dans laquelle j'avais mis un
    Debug.Print(Now & vbTab & "KeyPress")
    Debug.Print(e.KeyChar.ToString)

(*) avec toujours ces foutues fenêtres qu'on ne peut pas redimensionner : 5 ans que je me bats pour faire comprendre ça à Microsoft. Enfin.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Correction :
Le dernier Debug.Print était
Debug.Print("Form_KeyPress, " & e.KeyChar.ToString)
Messages postés
19
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
12 août 2011

Ok, merci pour tes explications.
Je vais essayer d'utiliser l'intellitrace pour résoudre mon probleme, outil que je ne connaissais pas et qui m'a l'air bien pratique. En attendant j'ai resolu le probleme avec un bouton meme si ca surcharge l'interface graphique ca marche au moins.