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

C# Discussion :

Evenements sur une combobox


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Janvier 2010
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 232
    Points : 112
    Points
    112
    Par défaut Evenements sur une combobox
    Bonjour,

    Je travaille sur une appli qui a une combobox.
    Quand je change la valeur sélectionnée, j'appelle une méthode en passant en paramètre maCmb.selectedValue
    Or au chargement de la combo avec des datas issues d'une BD, l'évenement se déclenche et j'ai une exception :
    Impossible d'effectuer un cast d'un objet de type 'System.Data.DataRowView' en type 'System.IConvertible'.

    Si je change l’évènement déclencheur et que je mets par exemple TextChanged , j'ai le même souci.
    Si je mets sur l'evt Text_Update, tout se charge bien, mais quand je chande de valeur dans la liste déroulante, rien ne se passe.

    Comment donc éviter l'erreur sur le chargement, à moins de mettre dans la procédure évènementielle un try/catch avec un catch vide.... ça marche mais c pas beau !!
    Merci pour les réponses

  2. #2
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Plutôt que de vouloir cacher les erreurs sous le tapis, pourquoi ne pas essayer de les corriger ? La vraie question, c'est pourquoi tu veux faire un cast impossible ?...

  3. #3
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Janvier 2010
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 232
    Points : 112
    Points
    112
    Par défaut
    Merci pour ta réponse. Je suis bien d'accord avec toi, je n'aime pas faire ça.
    Je suis seulement à la recherche d'un événement qui ne se déclencherait pas au moment du chargement de la combobox, mais qui se déclencherait au moment du changement de la valeur sélectionnée.
    Je suis aussi prêt à faire un rest dans la procédure évènementielle SelectedValueChanged, mais je ne sais pas lequel.
    Merci pour les conseils

  4. #4
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Pourquoi pas un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if( maCmb.selectedValue is System.IConvertible)
    {
        // là je peux faire mon cast sans problème
    }

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    @nnovic : Il ne cherche pas à faire un cast impossible, c'est juste qu'avant que le comboBox ne soit correctement lié à la source de donnée, celui-ci déclenche l'évènement et vu qu'il n'est pas encore lié, le selectValue ne contient pas le bon type, à savoir DataRowView.

    @loustalet : Il vous suffirait de comparer si le type de selectedValue est bien de type DataRowView dans la méthode et d'effectuer les action s'il est bien du bon type. Petit lien msdn TypeOf.


    EDIT : +1 nnovic

  6. #6
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Janvier 2010
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 232
    Points : 112
    Points
    112
    Par défaut
    finalement j'ai fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (MaCmb.SelectedValue is Int32 )
    Et ça marche bien .
    j'ai essayé ça et ça marche aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ( !(MaCmb.SelectedValue is   DataRowView))
    et ça aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                if (MaCmb.SelectedValue is IConvertible)
                {
                   ChargerPanel();
                }
    Je ne sais pas quelle est la meilleur solution.
    Merci en tous cas

    Merci pour vos réponses.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Salut
    -----

    Pour ma part, je ne m'abonnerais à l'évènement qu'après l'intialisation.
    Comme ça, plus besoin de test

    A+
    Claude

  8. #8
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Janvier 2010
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 232
    Points : 112
    Points
    112
    Par défaut
    Effectivement, je n' y avais pas pensé, trop l' habitude de laisser faire vs.
    Je vais même généraliser l' idée.
    Un grand merci:

Discussions similaires

  1. Evenement KeyDown sur une ComboBox
    Par methos99 dans le forum Flex
    Réponses: 2
    Dernier message: 23/04/2009, 09h42
  2. evenement keypress sur une combobox
    Par ashash dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/07/2007, 22h01
  3. [FLASH MX2004] Evenement sur une image...
    Par JulPoWeR dans le forum Flash
    Réponses: 9
    Dernier message: 14/06/2007, 11h17
  4. evenement sur une zone jTextfieled.
    Par Essefi_K dans le forum JBuilder
    Réponses: 1
    Dernier message: 24/03/2006, 10h09
  5. [Stratégie] attendre un évenement sur une saisie clavier?
    Par ukanoldai dans le forum Général Java
    Réponses: 4
    Dernier message: 28/02/2006, 17h05

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