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 :

Exception sur une combobox


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut Exception sur une combobox
    Bonjour,

    Je travaille sur une IHM contenant des textbox et des combobox notamment.

    Lorsque je fais un "tab" sur une de mes textbox, j'arrive dans une combobox qui a chargé préalablement des valeurs. Ici 3 scénarii possibles:

    1- je me positionne dans la combobox sans rien choisir et fait à nouveau une tabulation pour passer à la zone suivante --> OK

    2- je me positionne dans la combobox et choisis un élément de la combobox et passe par tabulation à la suite --> OK

    3- je me positionne dans la combobox , fait apparaitre la liste des valeurs puis je tabule sans n'avoir rien choisi, et là mon programme me lève une Exception alors que je souhaiterais que ça ait le même comportement que le 1.

    Je sais l'utilisation 3 n'est pas très réaliste mais ceci à était une anomalie trouvée dans une recette pour le client de mon IHM donc je me dis que ça peut arriver...
    Si quelqu'un a une idée de résolution... merci !

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut
    Bonjour,

    La combo est alimenté par quoi ? (SGBD, collection...).
    Quel est le message renvoyé ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Elle est alimentée par une collection oui.

    En mode débogage, j'obtiens:
    ArgumentOufOfRange Exception n'a pas été levée
    InvalidArgument= La valeur '0' est invalide pour le paramètre index.
    Je suppose donc que c'est un soucis d'initialisation de la combobox... mais je ne sais pas exactement où peut être accessible ce paramètre index en question...

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut
    La propriété qui permet d'acceder à l'index du combobox est SelectedIndex.

    Une exception est levée lorsque ce dernier est inférieur à -1 (Qui correspond à aucune selection) ou si l'index est supérieur au nbre total d'item de la combo.

    Lors du debug quelle est la valeur du SelectedIndex ?

    Y a t il un evenement codé sur la combo ? Que déclenche la selection d'un item ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Visiblement, quelque soit l'item sélectionné, en faisant des message box, il m'affiche un index = -1 .

    Je n'ai pas de méthodes de sélection d'un item ni rien. J'ai juste une méthode validating sur la combobox en fait...Mais pas d'évènement concernant la sélection d'item.

    L'idéal aurait été de trouver une méthode détectant la sélection ou non d'un item lorsque je change de zone... mais j'ai rien trouvé

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Par défaut
    Il est possible d'avoir le code associé au comboBox ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Voici le code ... j'ai élagué les lignes inutiles...
    Ma combobox s'appel iepCB et est alimentée selon la saisie de la textbox précèdente, validée à l'aide de la tabulation.

    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
     
    // requête SQL pour chercher les élements relatifs à la saisie textbox
                        String select_ = "*";
                        String from_ = "Dossier_IEP ep";
                        String where_ = "ep.IPP = '" + textbox + "'";
                        int rows_ = 0;
                        IFolderSet rrs = CEUtil.FetchResultFolderSet(os, select_, from_, where_, rows_);
                        iepCB.Text = "";
                        if (!(rrs.IsEmpty()))
                        {
                            iepCB.Items.Clear();
                            iepCB.Text = "";
                            // Inclusion des IEP Filenet dans le champ correspondant
                            foreach (IFolder f_iep in rrs)
                            {
                                iepCB.Items.Add(f_iep.Properties["IEP"]);
     
                            }
                        }
    J'alimente ainsi la combobox.
    Pour le code de la combobox j'ai une méthode Validating dont l'algo est grossièrement ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (iepCB.Text != "")
    {
    //traitement1
    }
    else
    {
    //traitement2
    }

  8. #8
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 201
    Par défaut
    Et si tu mettais une fonction de selection , justement pour t'empecher de rentrer dans un cas de Out of range :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public void SelectionneValeur(string val)
            {
                // Recherche de la valeur.
                int i = cmbBox.FindStringExact(val);
                if (i >= 0)
                {
                    cmbBox.SelectedItem = this.Items[i];
                }
            }

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Ca me semble pas mal comme solution... mais le truc c'est que je ne sais pas à l'avance la valeur que je cherche...
    Mais je suis pas sur tout à fait que cette solution ne me génère pas l'erreur d'index, surtout si je n'ai rien sélectionné.

  10. #10
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 201
    Par défaut
    Citation Envoyé par Stormy31 Voir le message
    Ca me semble pas mal comme solution... mais le truc c'est que je ne sais pas à l'avance la valeur que je cherche...
    Mais je suis pas sur tout à fait que cette solution ne me génère pas l'erreur d'index, surtout si je n'ai rien sélectionné.
    Oui toutafait !
    Cela dit, y a un soucis qd mm, vu que tes selectedIndex sont toujours à -1 !
    A mon avis il ne faut pas aller voir plus loin !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Oui mais les informations sont correctement chargées ...
    Le souci c'est lorsque la combobox est déroulée et que je tabule à ce moment là j'ai erreur ... Ce n'est que dans ce moment là que j'ai problème...

  12. #12
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 201
    Par défaut
    Pour débugger je te propose de faire un evenement KeyDown !
    Et de voir ce qui se passe dans le cas d'une tabulation !

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Je pense qu'il s'agit d'un soucis de code extérieur...

    Je vais tenter d'élaguer le code avec les informations non utiles pour ce soucis et je reviendrais poster si je n'ai pas résolu la chose...

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    En effet, il s'agissait d'une ré-initialisation que je faisais mal à l'extérieur du code

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

Discussions similaires

  1. exception sur une date
    Par DJERDJAR YACINE dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 30/07/2007, 15h20
  2. Probleme vaudou sur une combobox
    Par sabotage dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/07/2007, 17h32
  3. evenement keypress sur une combobox
    Par ashash dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/07/2007, 23h01
  4. Test sur une ComboBox (Liste déroulante).
    Par SeaWolf601 dans le forum IHM
    Réponses: 5
    Dernier message: 05/10/2006, 18h29
  5. Réponses: 9
    Dernier message: 01/12/2005, 11h54

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