VB6 Combobox

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 20 févr. 2006 à 18:55
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 20 févr. 2006 à 21:27
Salut mon dernier problème avec mon Combobox...

Exite-il une façon d'imposer un heuteur du Combobox

J'ai 10 items dans mon Combobox et j'aimerais qu'il n'y ait pas de barre de défilement.

J'aimerais lorsque jke clique sur le Combobox que je voit mes 10 items dans bouger la "maudite" barre de défilement...

merci d'avance...

8 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
20 févr. 2006 à 19:16
Salut, d'abord, il est inutile de poster la même question 4 fois de suite. J'ai supprimé les doublons.
Ensuite, si tu veux voir 10 items dans une liste, utilise une listbox et pas une combo.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
20 févr. 2006 à 19:32
Salut pour la répétition de ma question.... Ca me sortais un message d'erreur et j'ai fais quelque test avant que ca fonctionne... Le problème c'est que le site a eu un bug et ca me sortais un message d'erreur lorsque j'essayais de poster mon message... Et ca la fini par fonctionner... héhéhéhé

bye
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
20 févr. 2006 à 19:57
Rebonjour...

ok mais si je prend un listbox, ca prend trop de place dans mon prog.

la place que prend le combobox est parfait c'est juste que quand je clique dessus (Combobox) j'aimerais voir mes 10 éléments et donc ne pas utilkiser la barre de défilement..

J'attends de tes nouvelles si c'est possible..

merci d'avance
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
20 févr. 2006 à 20:27
A ma connaissance, impossible d'afficher plus de 8 items d'une combo sans scrollbar verticale.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 févr. 2006 à 20:48
salut,


tu peux modifier la largeur par SendMessage.


c'est supposable que la hauteur soit également modifiable. je crois que RenField a posté une source à ce sujet, y'a plus qu'à...


++


PCPT [AFCK]
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
20 févr. 2006 à 21:05
Avec sendmessage ou pas, on peut changer la largeur d'une combo, par contre, sa hauteur est en lecture seule donc non modifiable à moins d'utiliser une combo style =1 (simple combo) et l'effet ressemble à une listbox.
J'ai vu des solutions à base de simple combo toutes aussi capilo-tractées les unes que les autres et compliquées à mettre en place.
Pas vu la source de renfield, je vais la rechercher, peut-être que je vais apprendre quelque chose.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
20 févr. 2006 à 21:23
Bonsoir,

Tu règles la hauteur dans Form_Load (xHeight = ' à toi de choisir suivant tes Items)



Option Explicit

Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, _


ByVal x As Long, ByVal y As Long, _


ByVal nWidth As Long, ByVal nHeight As Long, _


ByVal bRepaint As Long) As Long

Public Sub SetCtrlHeight(vCtrl As Control, vHeight As Long)



Dim xForm As VB.Form, xCont As Object, XScaleMode As ScaleModeConstants



'Trouve où est situé le contrôle (Formulaire et Contenant)

Set xForm = vCtrl.Parent

Set xCont = vCtrl.Container



'Enlève le contrôle de son contenant pour le mettre sur la form

Set vCtrl.Container = xForm



'Sauvegarde ScaleMode avant de le modifier

XScaleMode = xForm.ScaleMode



'Met ScaleMode du formulaire en Pixels car MoveWindow utilise les pixels

xForm.ScaleMode = vbPixels



'Redimentionne la fenêtre du ComboBox

MoveWindow vCtrl.hwnd, vCtrl.Left, vCtrl.Top, vCtrl.Width, vHeight, 1



'Remet ScaleMode à sa valeur initiale

xForm.ScaleMode = XScaleMode



'Remet le contrôle dans son contenant initial

Set vCtrl.Container = xCont



End Sub



Private Sub Form_Load()

Dim xHeight As Long

xHeight = 180 ' en pixel : affiche 12 lignes en Font MS sans Serif taille 8

Call SetCtrlHeight(Combo1, xHeight)

End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
20 févr. 2006 à 21:27
Ok, je viens de voir la source de renfield (pour info : http://www.vbfrance.com/codes/CB_SETDROPPEDWIDTH-OU-COMMENT-AGRANDIR-COMBOBOX_34790.aspx )

Effectivement, le nombre d'items affichés sans scrollbar est de 13 au lieu de 8 mais c'est en jouant sur la hauteur des items affichés, pas sur la hauteur de la combo. Mais bon, pour 10 items, je pense que ça devrait convenir à JeffC1977.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
Rejoignez-nous