Nombres de lignes visibles dans une combo box

itsha - 28 mars 2001 à 16:13
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

3 réponses

Modifier la propriété "ListRows".
0
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
0
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
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 !
0
Rejoignez-nous