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

VB.NET Discussion :

[VB.Net 1.1] Pourquoi est-il impossible d'effacer le texte d'une combo bindée ?


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut [VB.Net 1.1] Pourquoi est-il impossible d'effacer le texte d'une combo bindée ?
    Bonjour,

    Je suis très énervé...

    La situation est la suivante : j'ai une fenêtre. Dans cette fenêtre j'ai une listBox. Cette listBox possède une DataSource et affiche les enregistrements d'une table (TableA). Cette table contient des champs qui sont les identifiants d'élements présents dans une autre table (TableB).

    A droite de cette listBox, j'ai autant de comboBox que mes champs identifiants. Chaque comboBox est alimentée par la TableB. Chaque comboBox voit sa propriété DataBinding.SelectedValue branchée sur chaque champ identifiant auquel elle correspond de la TableA.

    Le fonctionnement final souhaité est le suivant : je choisi un élément de ma listBox et les combo se mettent à jour en fonction de cette sélection.

    Simple, non ?

    Maintenant, mon problème : quand j'enregistre l'enregistrement courant, je veux pouvoir remettre mes champs identifiants à 0. Pour ce faire, je vérifie chaque comboBox : si combo.text vaut "", alors c'est que l'utilisateur veut effacer le lien, donc je remet mon id à 0.

    Sauf que ! Prenons un cas pratique sur une combo. L'élément sélectionné est "toto"(c'est-à-dire que dans ma TableB, j'ai un champ défini à "toto"). Je sélectionne cette valeur dans le champ texte de ma combo avec ma souris (souffrante vue les misères que je lui inflige en raison de mon énervement ), j'appuie sur la touche Suppr. Le texte s'efface. J'appuie sur mon bouton Enregistrer et je passe en mode pas à pas.

    J'arrive sur la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If maCombo.Text <> "" Then
      .Item(K_CHAMP) = maCombo.SelectedValue
    Else
     .Item(K_CHAMP) = 0
    End If
    (Je rappelle que j'ai effacé le texte de ma combo). A cet endroit, maCombo.Text vaut toujours "toto" !!

    Que dois-je faire ? Comment savoir que j'ai effacé le texte de ma combo ?? Pourquoi .text vaut encore la précédente valeur alors que je l'ai effacée ??

    Aidez-moi s'il-vous-plaît...je vais me tirer une balle bientôt...

  2. #2
    Membre du Club Avatar de Manralf
    Inscrit en
    Août 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Il s'agit d'un bug du framework Si je me souviens bien (à tester donc), il faut que tu effaces deux fois la propriété Text de ta ComboBox pour que cela fonctionne.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    Merci de cette réponse rapide ! Cela fait plaisir de voir qu'il y a encore des gens qui travaillent à cette heure "tardive" un vendredi de pré-gros-we !

    Je viens de tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    maCombo.Text = ""
    maCombo.Text = ""
     
    maCombo.ResetText()
    maCombo.ResetText()
    Rien n'y fait, mon texte ne s'efface pas...

    Existe-t-il une référence des bogues du framework consultable quelque part ?

    ...

    Réponse, un coup de googlelisation, et j'ai trouvé :
    http://support.microsoft.com/kb/839616/

    Solution : installer le dernier service Pack du framework.

    Edit : après téléchargement, installation du SP1, redémarrage machine, redémarrage Visual, recompilation projet : aucun changement, le problème persiste...

    Y'a-t-il quelque chose à faire pour que mon projet prenne en compte le .Net SP1 ? Est-ce automatique ?

    ...

    Finalement, ça à l'air de fonctionner correctement avec le SP1. J'ai refait ma fenêtre, j'ai vérifié : la combo a un fonctionnement normal.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/10/2014, 15h32
  2. Réponses: 6
    Dernier message: 02/03/2011, 16h04
  3. Réponses: 9
    Dernier message: 27/05/2009, 16h08
  4. Réponses: 6
    Dernier message: 14/06/2007, 12h13

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