Combobox

Signaler
Messages postés
24
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
28 juin 2012
-
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
-
Bonjour j'ai une combobox lié a une base de données je veux que l'utilisateur ne puisse pas saisir dans la combobox et choisir seulement les items disponibles j'ai essayé le dropdownlist mais le problème c'est quand le form se charge la combobox est remplie par la ère valeur de la table de la base de données
quelqu’un peut m'aider pour resoudre ce petit prob j'ai cherché la propriété readonly mais il n existe pas pour les combo

16 réponses

Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Bonjour medamineboulbhaiem,

C'est un comportement pénible du ComboBox...

Dim primoLancement As Boolean = true ' global

Sub Form1_Shown(...
 primoLancement = False
End Sub

Sub ComboBox1_SelectedIndexChanged(...
 if primoLancement = True Then Exit Sub
End Sub


Cordialement, Joe.
Messages postés
24
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
28 juin 2012
1
Merci EhJoe pour votre reponse mais malheureusement cela n'a pas marché
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Ah ben medamineboulbhaiem, c'est qu'il doit y avoir d'autres éléments qui n'ont pas été mentionnés, désolé, cordialement, Joe.
Messages postés
24
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
28 juin 2012
1
meme si j'ai mis ce code l'utilisateur peut encore saisir dedans
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Bonjour,
en plus de dropDownStyle = DropDownList
- forcer à rien (-1 ou 0 sous VB.Net ?) l'index sélectionné (par Combobox1.SelectedIndex=0 (ou -1, si n-1))
Autre soluce à 4 sous : "vider" la zone éditable ===>>
Combobox1.Text = Nothing
Et si toujours pas suffisant : occulter carrément la zone éditable, avec un label, par exemple. Sudffit ensuite de mettre à false la propriété visible de ce label dès qu'une sélection est faite dans la combo (évènement SelectedIndexChanged).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Ta conclusion était que :


mais le problème c'est quand le form se charge la combobox est remplie par la ère valeur de la table de la base de données


C'est donc à ceci que j'ai répondu (chargement non voulu d'un combobox au démarrage)

Cordialement, Joe.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Bonjour, EhJoe,
Ce qu'il veut dire (en s'exprimant maladroitement) est que, lors du chargement, la zone éditable de sa combo contient le 1er article. Il voudrait, selon ce que j'ai compris/deviné :
- que cette zone éditable reste vide au départ
- qu'elle ne puisse ensuite être modifiée que par sélection volontaire d'un article

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
24
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
28 juin 2012
1
oui voila "ucfoutu" je ne veux pas vider la combobox complètement, je veux qu'aucun item ne soit sélectionné lors du chargement de la form
pour le style normal je met combobox1.text=""
mais pour le dropdownliste je ne trouve pas la propriété
merci bcp "ucfoutu" ça marche très bien
sinon pour le style normal (dropdown) y'a pas de solution pour empêcher la saise ?!
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Voilà que tu "passes" maintenant d'un problème résolu à une nouvelle question !
Voilà que tu veux maintenant qu'en situation de combobox "normale", l'utilisateur ne puisse rien saisir dans sa zone éditable !
OK ! le problème est exactement le même (avec la même solution) que pour une textbox ===>>
Dans son évènement Keypress, dire que toute touche frappée est nulle !
Je crois (moi, je ne connais pas ton VB.Net) qu'en VBV.Net, ce serait du genre :
e.SuppressKeyPress = True

PS : et si, de temps à autre, tu allais faire un tour sur MSDN (comme moi, qui n'ai même pas VB.Net) ??? ===>> tu gagnerais probablement énormément de temps, non ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Bonjour à tous,

Moi je ne comprends rien...

Tu écris bien ceci :

je veux que l'utilisateur ne puisse pas saisir dans la combobox et choisir seulement les items disponibles


Donc pas de saisie, alors la réponse c'est cela :
 ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList


Mais tu réfute cette propriété en écrivant :

j'ai essayé le dropdownlist mais le problème c'est quand le form se charge la combobox est remplie par la ère valeur de la table de la base de données


Le problème serait donc que le combo est remplit par la première valeur de la table...
Et tu semble ne pas le vouloir...

Mais le combo se remplit selon, et tes directives de code et ce qu'il y a dans ta base, ce n'est pas un problème de combo mais un problème de code en liaison avec ce dernier...
Dailleurs tu parle du combo remplit par la première donnée de ta base, en fait il n'est pas remplit, il y a juste l'item(0), mais que font autres données de ta base, sont-elle en grève, ou y en a-t-il qu'une... Dur dur...

*

Pour reprendre ce qu'écrit Jacques (UcFoutu) :
Ben si tu veux que ta zone item(0) reste vide, suffit de charger dedans du vide préalablement, soit :
sub load...
combobox1.items.add("")
' puis tu charge ta base...
nd sub


Et... si ensuite tu veux que si on clique un item on puisse écrire, déjà la propriété sus-cité n'est pas valable (list), mais encore, suffit de tester, et dès qu'on touche au combo (après lancement, ce qui renvoie à mon premier code), tu éjectes ton tiem(0)="", et ainsi tu n'as plus que les items de chargés issus de la base...

*

Là tu veux des choses pas très compatibles à l'origine, et si on rajoute que tu sembes mal connaître le combo (qui est un objet délicat et susceptible ), ben vaut mieux que tu mettes une listbox (sauf si tu manques atrocement de place), et que quand on clique dans celle-ci sur un item, tu affiches par menu surgissant ce que peut faire l'utilisateur (modifier, supprimer, abandonner, etc)... Et in fine selon la décision de l'utilisateur, pour écrire tu lances une autre form (vbModal) ou tu démasques une zone texte cachée (bloquant en même temps le listbox), tu écris, tu valides, etc...

Ainsi tu n'auras pas à malmener les propriétés pour que le combo ait un comportement un peu contre nature, d'autant que le combo c'est pas terrible pour faire ds saisies (je fais généralement de la gestion de ce type par listBox, c'est plus souple et plus clair)

Cordialement, Joe.
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Adendum,

Je n'avais pas vu la répone de Jack, oui j'y avais pensé, en effet tu peux gérer la saisie dans le combo comme il l'indique, mais ça semble faire beaucoup de manipulation sur un combo tout ça, de facto je maintiens mon idée de listbox.

Cordialement, Joe.
Messages postés
24
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
28 juin 2012
1
mais arrêtez messieurs qu'est ce que vous avez on a juste demandé une petite questionne et le monsieur vient de m’écrire un article de journal moi je voudrais mieux utiliser les combobox normaux "dropdown" alors j'ai demandé comment empêcher la saisie dedans et siiii y'a pas de solution a cet egard je serais obligé de passer a la dropdownlist et j'ai posé le problème qui le provoque sa veut dire que je j'ais resumé tout ds une question

je crois que tu comprendra cela en image car c'est pas ma question qui n'est pas compris vu que le monsieur "ucfoutu" m'a compris et m'a répondu et je ne comprends pas pourquoi vous avez rajouter cet article
Messages postés
24
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
28 juin 2012
1
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Toi trop fort, moi y en a abandonner, bye bye
Messages postés
24
Date d'inscription
mardi 3 avril 2012
Statut
Membre
Dernière intervention
28 juin 2012
1
mais faut pas critiquer les gens de cette manière mon frère vous pousser les gens a fuire ce forum
comme ça on aurai préférer de rester bloqué mieux de se faire provoquer pour une simple question
je vous remercie bcp monsieur pour votre tentative d'aide
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
5
Cher amil medamineboulbhaiem,

Oh mon ami, point je ne critique, je suis juste un peu narquois. Mais comment ne pas l'être, tu montres une photo de ce que tu voudrais avec l'apparence d'un combo en mode list (qui ne permet pas d'écrire), le contraire de ce que tu veux en somme, c'est ceci qui peut créer la désespérance.

Dire que je suis ton frère est là un espoir qui dans le futur sera cruellement démenti...

La réponse je l'ai écrit un peu plus haut dans ce que tu trouvais trop long, à toi de choisir ; UcFoutu aussi a avancé des réponses, donc tu as tes réponses que tu ne sembles pas mieux comprendre que nous tes questions.

Mais non, il ne faut pas quitter ce forum, ce serait désolation. Nous pouvons très bien cohabiter encore quelque temps, avec toi qui ne mets pas en oeuve nos réponses et nous qui ne comprenons pas tes questions, ça a un certain charme...

Cordialement, Joe.