Probleme Combobox SelectedIndex = -1 ne fonctionne pas toujours

Signaler
Messages postés
15
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
10 mars 2005
-
Messages postés
37
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
4 novembre 2010
-
Bonjour a tous,

J'ai deja parcouru la liste, le web, etc et ai trouve quand-meme bcp de gens ayant le meme probleme que moi mais aucune reelle solution. Sans doute, qqn a-t-il maintenant une idee de ceci:

J'ai un code VB dans lequel j'instancie une combobox avec un datasource, datamember et datavalue. Lorsque ce data source doit afficher un champ rempli d'un enregistrement qui existe dans ma db, c'est ok. Par contre, si le champ de l'enregistrement est vide, je fais

cmb.selectedindex = -1.

A ce moment, le premier element de la liste est selectionne, au lieu de rien du tout... Impossible de lui dire de ne rien selectionner.

Quelqu'un sait-t-il comment faire ?

Sinon deux autres solutions:

Je peux remplir ma combo a la main (en parcourant la table de donnees). Mais je ne sais pas comment dire "affiche cette valeur (ex. Nom) mais retient celle-ci (ex. Row_id) pour la stocker ailleurs"... bref une sorte de liste multi-valeurs...

OU

Ajouter une ligne vide AVANT de lier un datasource... genre:
cmb.items.add("vide")
cmb.DataSource = table1

Merci d'avance a tous ceux qui prendront deja le temps de reflechir au probleme
A voir également:

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Normal, SelectedIndex te renverra -1 si rien n'est sélectionné (je ne savais même pas qu'on pouvait l'écrire !).
Pour tout désélectionner, il suffit peut-être de faire une boucle de tous les items et de les mettre à
Item(x).Selected = False
(à vérifier)

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
Messages postés
15
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
10 mars 2005

Merci beaucoup jack.

Malheureusement ce n'est pas une solution qui a fonctionne pour moi. Ce probleme est donc vraiment assez profond.

Le comportement est meme assez etrange car, j'ai des boutons de navigation qui me permettent de parcourir des enregistrements d'une table. Pour chaque enregistrement j'ai ce fameux probleme avec mes combobox mais, si j'essaie d'atteindre un enregistrement qui n'existe pas (typiquement avant le premier ou apres le dernier), alors les combos sont correctement rafraichies avec les infos (impossible d'atteindre un nouveau record donc on reste sur le meme, mais on le rafraichit)... a n'y rien comprendre.

J'ai l'impression qu'en rafraichissant deux fois un record c'est ok... a tester. Quelqu'un a-t-il une idee geniale ?

Merci encore
Messages postés
37
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
4 novembre 2010

Bon le sujet date d'Erode mais moi pour pus qu'il me mette -1, j'ai fais un truc tout bête, lors de la création de la fenêtre et des objets, j'ai tout simplement mis:


cmb.SelectedIndex = 0

Et pouf le -1 a disparu!