VB doesn’t provide a ListRows property, so if you need to display more than eight default items in a combobox drop-down list, use this procedure to increase the size of the combo box window:
Option ExplicitType POINTAPI x As Long y As LongEnd TypeType RECT Left As Long Top As Long Right As Long Bottom As LongEnd TypeDeclare 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 LongDeclare Function GetWindowRect Lib _ "user32" (ByVal hwnd As Long, _ lpRect As RECT) As LongDeclare Function ScreenToClient Lib _ "user32" (ByVal hwnd As Long, _ lpPoint As POINTAPI) As LongPublic Sub Size_Combo(rForm As Form, _ rCbo As ComboBox) Dim pt As POINTAPI Dim rec As RECT Dim iItemWidth As Integer Dim iItemHeight As Integer Dim iOldScaleMode As Integer 'Change the Scale Mode on the form 'to Pixels iOldScaleMode = rForm.ScaleMode rForm.ScaleMode = 3 iItemWidth = rCbo.Width 'Set the new height of the combo box iItemHeight = rForm.ScaleHeight - _ rCbo.Top - 5 rForm.ScaleMode = iOldScaleMode 'Get the coordinates relative to the 'screen Call GetWindowRect(rCbo.hwnd, rec) pt.x = rec.Left pt.y = rec.Top 'then the coordinates relative to 'the form. Call ScreenToClient(rForm.hwnd, pt) 'Resize the combo box Call MoveWindow(rCbo.hwnd, pt.x, _ pt.y, iItemWidth, iItemHeight, 1)End Sub