IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Intercepter "Enter" sur DatagridView


Sujet :

Windows Forms

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Intercepter "Enter" sur DatagridView
    Bonjour

    Je ne parviens pas a intercepter la Key "Enter" pendant l'edition d'une cellule d'un DGV

    J'ai essayé de faire ceci
    Curieusement chaque caractére tappé est intercepté SAUF le "Enter"
    Ou est l'erreur ?

    Merci de votre aide

    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
       // ***********************************************************************************
        // = Events =
        private void DgvKeys_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
          DgvKeys.EditingControl.KeyDown += DgvKeys_KeyDown;
        }
     
        private void DgvKeys_KeyDown(object sender, KeyEventArgs e)
        {
          if (e.KeyCode == Keys.Enter)
          {
            e.Handled = true; ;
            DoSearch();
          }
        }
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Vu sur le web : However, if the key stroke is the Enter key, the default behavior is that the cell below becomes the current cell, which is not in edit mode, so the key up Windows message is captured by the DataGridView and the KeyUp event is raised in turn.
    Pour contourner, essaye l'event KeyPress en plus de KeyDown.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Bien vu !

    *!£%€
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    Pour contourner, finalement il suffit de tester KeyUp et plus besoin de traiter
    DgvKeys_EditingControlShowing

    Merci !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Pour les Gurus du dataGriview

    J'ai un Datagriview avec 3 combo.
    Dans celui la, l'event KeyUP ou KeyDown n'est JAMAIS declenché avec Keys.Enter

    Je cherche, je cherche et je ne trouve pas !!
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  6. #6
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    Bon pour l'info et la petite histoire j'ai trouvé

    1- Comme mon datagridview comportait des combo, l'utilisateur trouvait confortable qu'un cliquant sur le combo, il s'ouvre directement sans devoir faire un deuxieme click
    Pour cela j'avais mis la proprieté EditMode a EditOnEnter

    2- Ce Datagridview d'UNE SEULE ligne permet d'introduire des clef de recherche dans une base. Et l'utilisateur trouve AUSSI confortable que le ENTER permette de lancer la recherche avec les clef introduite

    Malheureusement il s'avere que ces deux conforts sont antagoniste et que si la propriete EditMode est à EditOnEnter, il n'est plus possible d'intercepter un Key event venant de la touche Enter
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    cliquant sur le combo, il s'ouvre directement sans devoir faire un deuxieme click
    En mode standard, est-ce que le combo ne s'ouvre pas directement en tapant sur la flêche au bout du combo?

    Je me rappelle avoir galéré pour résoudre des problèmes de validation sur des combo dropdown (pas dropdownlist) dans un DGV, en particulier avec le enter.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    En mode standard, est-ce que le combo ne s'ouvre pas directement en tapant sur la flêche au bout du combo?
    NON hélas !

    Tu dois faire deux click !
    Le premier active la cellule
    Le deuxieme ouvre le combo

    Par contre si tu mets le EditMode comme j'ai dit, le premier click est bon mais avec l'autre problème cité

    Aujourd'hui c'est pas mon jour avec les ComboBox !
    J'ai toujours pas trouvé comment definir le Dropdownwidth d'un DropDown !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Quote] DVP quoté sur Bashfr
    Par Skyounet dans le forum La taverne du Club : Humour et divers
    Réponses: 16
    Dernier message: 26/09/2006, 18h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo