Cherche évenement Datagridview

simmart Messages postés 19 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 12 août 2011 - 7 juin 2011 à 13:44
simmart Messages postés 19 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 12 août 2011 - 9 juin 2011 à 10:15
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 juin 2011 à 13:58
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)
0
simmart Messages postés 19 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 12 août 2011
7 juin 2011 à 15:04
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 juin 2011 à 18:16
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 juin 2011 à 18:33
Si si : Le KeyPress réagit à la saisie.
Le CellValueChanged ou CurrentCellChanged réagissent à la validation (Tab ou Enter)
0

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

Posez votre question
simmart Messages postés 19 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 12 août 2011
8 juin 2011 à 08:41
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 juin 2011 à 19:41
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.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 juin 2011 à 19:42
Correction :
Le dernier Debug.Print était
Debug.Print("Form_KeyPress, " & e.KeyChar.ToString)
0
simmart Messages postés 19 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 12 août 2011
9 juin 2011 à 10:15
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.
0
Rejoignez-nous