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 :

Datagridview : ValueChanged et majuscules


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Miles Raymond
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 189
    Par défaut Datagridview : ValueChanged et majuscules
    Bonjour,

    Oui je créé 2 threads de suite sur une sujet assez ressemblant mais il s'agit de deux problèmes distinct, j'espère que les modérateurs comprendront.

    Voilà mon problème :
    Je permet à un utilisateur d'entrer manuellement une valeur dans la première colonne de mon dgv. En fonction de la valeur entrée, je vais chercher dans ma base de donnée l'élément désigne par cette valeur et je rempli le reste de la ligne. Dans mon cas il s'agit d'initiales de membres du personnel.

    Donc quand je recherche, je met toujours la valeur en majuscule, donc il me retrouve de toute manière la bonne personne, même si le client tape en minuscule. Seulement comme cette fonction a été implémentée sur CellValueChanged l'événement se déclenche si je tape "tma" au lieu de "TMA" et vice versa. Ce "redéclenchement" pose des problème ailleurs dans mon code.

    J'aimerais donc soit :

    - Par défaut que cette colonne ne saisissent que des valeurs en majuscule. J'ai tenté d'utiliser cellformating mais il se contente d'afficher la valeur en majuscule, la véritable valeur reste en minuscule.
    - Pouvoir récupérer l'old value et pouvoir comparer celle-ci à la nouvelle valeur entrée. Je les mets toutes les deux en toUpper et en fonction de la réponse j'exécute ma fonction ou non.

    Des idées ?

    Merci !

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    pour l'édition dans le dgv, il y a un controle qui est utilisé
    il est possible de le récupérer ou de lui mettre des evenements et donc sur keypress de modifier le key tapé par celui en majuscule
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé Avatar de Miles Raymond
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 189
    Par défaut
    Heu je pige pas. Le DGV en mode édition va créer un contrôle textbox ? Donc théoriquement on doit pouvoir accéder à ce textbox et faire du keypress ? Parce que effectivement, l'événement keypress sur le dgv ne se déclenche pas lorsqu'on édite le contenu d'une cellule.

    Mais là faudrait m'aiguiller un peu parce que je ne sais pas comment récupérer ce contrôle, pour commencer... Une idée?


    EDIT :

    Bouarf bouarf je dis des conneries moi, bientôt aussi grosses que moi. Si je regardais un peu avant de faire l'ahuri quand on me propose gentiment une piste, je trouverais des solutions plus vite !

    Merci sperot pour ton aide ! Si ça intéresse quelqu'un :

    D'abord grâce à l'événement EditingControlShowing j'exécute une fonction qui, lorsque une cellule entre en édition, check sur quelle colonne on se trouve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Private Sub dgv_Int_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) Handles dgv_Int.EditingControlShowing
     
            If dgv_Int.CurrentCell.ColumnIndex = 1 Then
                AddHandler e.Control.KeyPress, AddressOf dgv_Int_ToUpper
            Else
                RemoveHandler e.Control.KeyPress, AddressOf dgv_Int_ToUpper
            End If
     
        End Sub
    En fonction de la colonne, j'abonne l'événement keypress du contrôle actuel à ma fonction "dgv_Int_ToUpper"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Private Sub dgv_Int_ToUpper(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
     
            e.KeyChar = Char.ToUpper(e.KeyChar)
     
        End Sub
    Et dans ma fonction, je fais juste un tout ptit toUpper sur mon caractère.

    Easiest thing in the wooorld.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    je sais plus mais je l'ai deja fait
    y a un evenement cellediting ou autre déclenché en début d'edition qui renvoie en parametre le control d'edition utilisé
    y en a aussi un en fin d'edition


    EDIT :
    ah bah t'as trouvé ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Équivalent de ValueChanged dans DatagridView
    Par roshy dans le forum VB.NET
    Réponses: 1
    Dernier message: 08/11/2007, 20h40
  2. Réponses: 3
    Dernier message: 02/06/2006, 09h04
  3. [langage] Creer une fonction qui met en majuscule ?
    Par Cyber@l dans le forum Langage
    Réponses: 6
    Dernier message: 04/12/2003, 18h44
  4. recherche Xpath: problème de casse (majuscule/minuscule)
    Par alexandre54 dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 29/07/2003, 10h42
  5. Mettre la première lettre des mots en majuscule
    Par seb.49 dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2003, 14h26

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