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 key dans un datagridviewcombo


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 key dans un datagridviewcombo
    Bonjour

    Je seche sur un probleme de combo et datagridview
    Dans un datagridview j'ai ajouté des ComBoBoxColumn

    Si l'utilisateur a fait une selection dans le combo il ne peut plus remettre ce combo vide

    Par contre je suppose que si je force le selectedindex a -1, ca ira

    Le probleme est de pouvoir intercepter un key.delete ou escape sur la cellule concernée et je rame

    des suggestions ?
    Mercipour votre aide
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    En fait la difficulté est d'accéder au contrôle ComboBox lui-même... pour ça tu peux utiliser l'évènement EditingControlShowing, qui se produit quand le contrôle d'édition est affiché. Ensuite il suffit de récupérer le contrôle via e.Control et lui ajouter un handler pour l'évènement KeyDown

  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
    Merci Tomlev

    C'est précisément ce que je suis occupé a essayer.

    Si tout fonctionne comme je le pense je ferai un petit résumé du code car cela me semble souvent utile et pas évident a trouver
    « 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 Annuler la selection d'un DataGridViewComboBoxColumn
    Cela semble marcher

    Voici un exemple de code


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
       // ***********************************************************************************
    // Il faut s'abonner a l'event EditingControlShowing
        private void DgvKeys_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
    // Il faut verifier la nature du control concerné (je traite les combobox)
    // N.B. : Il y a certainement d'autres maniere plus élégantes de faire, j'en conviens
          ComboBox cmb = e.Control as ComboBox;
          if (cmb != null)
          {
            // On abonne l'event KeyUp du control concerné 
            cmb.KeyUp -= new KeyEventHandler(ItemKeyPress);
            cmb.KeyUp += new KeyEventHandler(ItemKeyPress);
          }
        }
        // ***********************************************************************************
    // Ici on traite le KeyUp
        private void ItemKeyPress(object sender, KeyEventArgs e)
        {
          if (e.KeyCode != Keys.Delete)
          {
            return;
          }
    // Si c'est un delete on annule la selection du combo
          ComboBox combo = (ComboBox)sender;
          combo.SelectedIndex = -1;
        }
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

Discussions similaires

  1. ajouter primary key dans une table
    Par DJERDJAR YACINE dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/07/2007, 00h35
  2. test présence key dans fichiers properties
    Par fanchic29 dans le forum Struts 1
    Réponses: 5
    Dernier message: 24/10/2006, 17h15
  3. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  4. foreign key dans phpmyadmin
    Par elekis dans le forum Requêtes
    Réponses: 7
    Dernier message: 10/12/2005, 15h21
  5. foreign key dans mysql
    Par guillevin dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 08/04/2004, 15h07

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