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 :

[Débutant]Combobox liée au dataset ()


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 89
    Points
    89
    Par défaut [Débutant]Combobox liée au dataset ()
    Bonjour,
    je fais partie d'une équipe pour un gros projet .net. Nous sommes deux débutants et pour le moment on galère grave.

    Je souhaite que la combobox permette l'autocomplétion pour les noms des clients, je l'ai donc liée à une datasource (via le designer). Le problème est que lors de l'exécution, la combobox affiche le premier client. J'ai également lié plusieurs labels au meme databinding afin qu'il puissent afficher d'autres renseignements sur le client.

    En faisant cbx_client.selectedindex=-1 effectivement je n'ai plus rien dans la combo en revanche les labels affichent toujours les infos sur le premier client.

    Je souhaite que lors de l'affichage de la premiere form, les champs soient vides.

    Je suis preneur pour vos idées.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut
    pour l'affichage sé normal puisque à l'ouveture de la table ils se pointe sur le premier enregistrement. Par contre dis moi exctement ce que tu veux.
    Tu veux à la création d'un nouvel element de pouvoir choisir les clients dejà existant.
    explique moi bien ce que tu veux , peut etre j'ai la solution à ton problème.

  3. #3
    Membre actif
    Homme Profil pro
    DBA - Développeur BI
    Inscrit en
    Avril 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : DBA - Développeur BI
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2003
    Messages : 442
    Points : 283
    Points
    283
    Par défaut
    Je mettrai sur le load du formulaire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cbx_client.selectedindex=-1
    label1.Text="" ou label1.Text=string.empty
    ou alors ne lier les label qu'une fois que ta combo affiche un enregistrement.

  4. #4
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut
    Ton problème est je pense indentique au miens.
    On cherche à faire en sorte de dire au datasource (ou au bindingsource dans mon cas), qu'à un instant T, il ne doit pas avoir de ligne sélectionnée.
    et lorsqu'on fait un l_bindingsource.position = -1, ca plante.
    ZTAB (Ze Text Adventure Builder)

    Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.

    http://sites.google.com/site/ztabsoft/

  5. #5
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par Herlece Voir le message
    Je mettrai sur le load du formulaire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cbx_client.selectedindex=-1
    label1.Text="" ou label1.Text=string.empty
    ou alors ne lier les label qu'une fois que ta combo affiche un enregistrement.
    Pour ta première solution, j'y ai pensé mais je trouvais ça moyen. Donc j'ai utilisé la deuxième solution.
    Petit bout de code en c# pour ceux que ça intéresse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
          private void cbx_souszone_Leave(object sender, EventArgs e)
            {
                //tester tout d'abord si la cbx a deja ete bindee
                if (lbl_libelle_sous_zone.DataBindings.Count == 0)
                {
                    lbl_libelle_sous_zone.DataBindings.Add(new Binding("Text", this.souszoneBindingSource, "libelle", true));
                    lbl_type_sous_zone.DataBindings.Add(new Binding("Text", this.souszoneBindingSource, "type_ss_zone", true));
     
                }
    }

  6. #6
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut
    La deuxième solution, ça marche à l'ouverture de l'appli, mais une fois que tu as sélectionné une ligne, pour redire au bindingSource qu'il doit déselectionner, je n'y arrive pas.
    ZTAB (Ze Text Adventure Builder)

    Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.

    http://sites.google.com/site/ztabsoft/

  7. #7
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    Dans mon cas, je voulais que la form soit vide à l'ouverture afin que l'utilisateur ne valide pas des valeurs par défaut, et qu'il choisisse lui même ses données.

    Donne moi plus de détails. Pourquoi vouloir déselectionner le biding source après sélection de l'utilisateur?

  8. #8
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut
    Dans mon appli, par exemple.
    J'ai un panel à l'écran (custom control) qui est bindé sur des zone rectangulaires qui sont des rows d'une table dans un dataset. Si je clique sur le panel à une coordonnées qui correspond à une zone, ca me sélectionne cette zone dans la bindingsource. Si je clique sur le panel à une coordonnée qui ne correspond à aucune zone.... je voudrais que tous les combobox, labels etc... ne pointent sur rien, hors ils continuent de pointer sur sur le dernier élément sélectionné, ce qui est dérangeant à l'utilisation, parcequ'on a l'impression que le click n'a pas été pris en compte.
    ZTAB (Ze Text Adventure Builder)

    Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.

    http://sites.google.com/site/ztabsoft/

  9. #9
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    Reprends le même principe que ce qu'on a utilisé pour le chargement de la form.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbl_libelle_sous_zone.DataBindings.Add(new Binding("Text", this.souszoneBindingSource, "libelle", true));
    ici on affecte directement le biding source. Mais comme on voudra le reutiliser, alors on fait plutot ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Binding b = new Binding("Text", this.souszoneBindingSource, "libelle", true);
    lbl_libelle_sous_zone.DataBindings.Add(b);
    et dans l'évenement onclick à l'endroit non voulu tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbl_libelle_sous_zone.DataBindings.Remove(b);
    J'ai testé vite fait donc dis moi ce que ca donne pour toi

  10. #10
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut
    Ca risque de marcher mais je flaire l'effet de bord

    Tout mes bindings sont fait par le designer winforms. Normalement on ne devrait pas avoir à les supprimer pour les remettre, la logique voudrait qu'on ait à faire juste un bindingSource.position = -1 pour que tout ceux qui sont enregistré sur le bindingSource soit mise à jour en même temps, mais comme le bindingsource le refuse, en gros moi faudrait que je dans le onclick sur mon panel, ou niveau de son bindingcontext, je récupère tous les Bindings associé, je les remove, et je les re Add dans la foulée (peut etre en les recréant a). ce que je ne comprends pas trop c'est que le bindingSource, même si on l'a désenregistré par rapport au control, n'a pas bougé et doit normalement continuer de pointer vers la ligne courrante. donc même si mon customcontrol pointe sur rien pacequ'on lui a recréé un binding, la vraie position de son bindingsource est toujours l'ancienne et les autres contrôles ne seront pas impactés.

    J'ai pas encore pu tester, mais ça sent l'effet de bord Je teste ce soir.
    ZTAB (Ze Text Adventure Builder)

    Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.

    http://sites.google.com/site/ztabsoft/

  11. #11
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut
    Rien changé du tout. Voici ce que j'ai fait

    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
     
            private void toolStripButton1_Click(object sender, EventArgs e)
            {
                List<Binding> l_bindings = new List<Binding>();
                foreach (Binding l_binding in label6.DataBindings)
                {                
                    l_bindings.Add(l_binding);
                }
     
                label6.DataBindings.Clear();
     
                foreach (Binding l_binding in l_bindings)
                {
                    label6.DataBindings.Add(l_binding.PropertyName, l_binding.DataSource, l_binding.BindingMemberInfo.BindingMember);
                }                        
            }
    ZTAB (Ze Text Adventure Builder)

    Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.

    http://sites.google.com/site/ztabsoft/

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

Discussions similaires

  1. [Débutant] 2 combobox liées au meme datasource dépendantes?
    Par bonnefr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/04/2009, 11h23
  2. [c#][.NET 2.0] Datagrid avec 2 combobox liées entre elles
    Par axl63800 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/04/2007, 09h31
  3. Liaison entre un comboBox et un dataset
    Par robocop2776 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/01/2007, 18h02
  4. Réponses: 3
    Dernier message: 16/05/2006, 14h47
  5. [débutante] Combobox
    Par monia dans le forum MFC
    Réponses: 4
    Dernier message: 03/06/2005, 13h16

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