VB6 Combobox

Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
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

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
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 !?
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
4
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
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
4
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
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
A ma connaissance, impossible d'afficher plus de 8 items d'une combo sans scrollbar verticale.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
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]
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
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 !?
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
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.
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
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 !?