Probleme Combobox SelectedIndex = -1 ne fonctionne pas toujours

senpiet Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 10 mars 2005 - 7 mars 2005 à 20:36
motardazerty Messages postés 37 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 4 novembre 2010 - 4 nov. 2010 à 13:43
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 mars 2005 à 21:19
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)
0
senpiet Messages postés 15 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 10 mars 2005
10 mars 2005 à 13:37
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
0
motardazerty Messages postés 37 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 4 novembre 2010
4 nov. 2010 à 13:43
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!
0
Rejoignez-nous