Nombres de lignes visibles dans une combo box

- - Dernière réponse : cs_MyC
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003
- 26 mars 2003 à 09:19
Bonjour

La question est peut-être bête ... je n'arrive pas à trouver comment on définit le nombre de lignes visibles dans une combo box. Si quelqu'un pouvait m'aider ... Merci :-)

itsha
Afficher la suite 

3 réponses

0
Merci
Modifier la propriété "ListRows".
0
Merci
Bonjour

Ma question portait sur VB6. Je n'y ai pas trouvé de propriété "ListRows". Mais j'ai trouvé une solution en utilisant une API. Le code ci-dessous fonctionne pour un nombre de ligne entre 8 et ... (testé avec 30), que le Combo Box soit ou non inclu dans un Frame, en 800x600 et 1024x768.

Amicalement
itsha

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 Function UTI_SetComboNbLignesVisibles(Cbo As ComboBox, NbLi As Integer) As Boolean

On Error GoTo GestionErreur
Dim Old_ScaleMode As Integer

Old_ScaleMode = Cbo.Parent.ScaleMode
Cbo.Parent.ScaleMode = vbTwips

UTI_SetComboNbLignesVisibles = IIf(MoveWindow(Cbo.hwnd, _
Cbo.Left / Screen.TwipsPerPixelX, _
Cbo.Top / Screen.TwipsPerPixelY, _
Cbo.Width / Screen.TwipsPerPixelX, _
(Cbo.Parent.TextHeight("A") * (NbLi + 2)) / Screen.TwipsPerPixelY, _
1) = 0, False, True)

Cbo.Parent.ScaleMode = Old_ScaleMode

Exit Function
GestionErreur:
''' Cbo.Parent.ScaleMode = vbTwips ' par sécurité ?
UTI_SetComboNbLignesVisibles = False

End Function
Messages postés
94
Date d'inscription
lundi 23 septembre 2002
Statut
Membre
Dernière intervention
22 avril 2003
0
Merci
Salut,

Ce code ne marche que sur les comboBox !

Est-ce que tu n'aurais pas une idée pour les imageBox ?

Merci d'avance !