Evenement d' une Cellule d' un datagrid

mcligth Messages postés 10 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 10 mai 2007 - 10 mai 2007 à 19:13
AdamKadamon Messages postés 7 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 17 février 2010 - 24 avril 2009 à 14:53
Bonjour tout le monde!
    Je travail en C# et je dévellope des applications de gestion.
    Mon problème est le suivant : j' ai un datagrid sur un formulaire et l' utilisateur saisi directement ses données dans celui-ci. Maintenant, j' ai une colonne dans laquelle je ne tape que des chiffres. dans quel événement dois-je gérer celà et quel est le code.

  Merci beaucoup à celui qui me sortira de ce trou!!!

   Courage, la science est toujours devant nous.

2 réponses

djamelbarache Messages postés 29 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
11 mai 2007 à 09:51
bonjour,
tu peux essayer le keypress et le keydown du datagrid, tu test si c'est la bonne colonne alors tu applique le code suivant :


private bool nonNumberEntered;








public



void
numeric_key(

KeyEventArgs
e){

            nonNumberEntered =


false
;


   if
(!(((e.KeyCode ==

Keys
.D9 || e.KeyCode ==

Keys
.D8 || e.KeyCode ==

Keys
.D7 || e.KeyCode ==

Keys
.D6 || e.KeyCode ==

Keys
.D5 || e.KeyCode ==

Keys
.D4 || e.KeyCode ==

Keys
.D3 || e.KeyCode ==

Keys
.D2 || e.KeyCode ==

Keys
.D1 || e.KeyCode ==

Keys
.D0) && (e.Shift)) && (e.Shift))){


if
(!(e.KeyCode ==

Keys
.Oemcomma && (!e.Shift))){


if
(!(e.KeyCode ==

Keys
.OemPeriod && e.Shift )){


if
(!(e.KeyCode ==

Keys
.Decimal )){


if
((e.KeyCode <

Keys
.NumPad0 || e.KeyCode >

Keys
.NumPad9) && (e.KeyCode !=

Keys
.Back) && (e.KeyCode !=

Keys
.Tab) && (e.KeyCode !=

Keys
.ShiftKey) && (e.KeyCode !=

Keys
.Shift) && (e.KeyCode !=

Keys
.RMenu) && (e.KeyCode !=

Keys
.RControlKey) && (e.KeyCode !=

Keys
.RShiftKey) && (e.KeyCode !=

Keys
.NumLock) && (e.KeyCode !=

Keys
.Menu) && (e.KeyCode !=

Keys
.LShiftKey) && (e.KeyCode !=

Keys
.LMenu) && (e.KeyCode !=

Keys
.LControlKey) && (e.KeyCode !=

Keys
.Delete) && (e.KeyCode !=

Keys
.ControlKey) && (e.KeyCode !=

Keys
.Control) && (e.KeyCode !=

Keys
.CapsLock) && (e.KeyCode !=

Keys
.Alt))nonNumberEntered =


true
;}

}

}

}

}








private



void
NUM_KeyPress(

object
sender,

KeyPressEventArgs
e){


if
(nonNumberEntered ==

true
) e.Handled =

true
; }


private



void
NUM_KeyDown(

object
sender,

KeyEventArgs
e){

numeric_key(e);

}





normalement ca va marcher mais n'oublie pas d'ajouter a ce code la vérification de la bonne colonne
0
AdamKadamon Messages postés 7 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 17 février 2010
24 avril 2009 à 14:53
permettez moi de relancer le sujet svp ^^
j'aimerais faire le meme genre de controle, mais mon datagrid dispose de plusieurs colonnes.
disons que dans la colonne 1 je mets un nombre reel, dans la 2 je mets du texte et dans la 3 encore un nombre reel.

les fonctions existent deja, seulement je n'arrive pas a utiliser ne onkeypress sur les cellule de telle ou telle colonne.
pourrie-vous m'aider svp ?
0
Rejoignez-nous