Sere breve...
Hay alguna forma de que la lista que desplega un combobox sea más larga, algo similar a lista que se muestra en WinXp para cambiar la zona horaria...
de antemano. gracias
| |||
Changing the Combo Dropdown Height Hola Ramoncito Revisa este link: http://vbnet.mvps.org/index.html?cod...omboheight.htm Espero te sirva y tengas más suerte que yo, que llevo meses intentando cambiar la altura de un datacombo... y no lo logro. Y al parecer nadie puede orientarme. http://www.forosdelweb.com/f69/datacombo-visibleitems-property-327361/ http://www.forosdelweb.com/f69/datacombo-controlar-altura-del-menu-desplegado-321877/ Saludos |
| ||||
Nos Respondemos Bien, en una de las paginas que me distes sale un código que modifica el Alto de un ComboBox, aca lo adapté a una función la cual se puede colocar en un módulo independiente y se puede llamar desde cualquier parte del proyecto. Funcionamiento El funcionamiento es simple, para llamar a esta función hay que utilizar la siguiente linea : ModificarAlto(25,Combo1,Form1,true) Descripción ModificarAlto(Nº de Registros Deseados, ComboBox que se desea modificar, Formulario en el que se encuentra el ComboBox, Valor Booleano Verdadero indica que desplegará la lista (como hacer un click en el Combobox), en caso de falso, no mostrará la lista No lo he probado con un DataCombo o DataList porque no los utilizo, habría que entrar a provar... pero por lo menos, funciona :) nos vemos!
Código:
Option Explicit Private Const CB_SHOWDROPDOWN = &H14F Private Const CB_GETITEMHEIGHT = &H154 Private Type POINTAPI x As Long y As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 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 Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long Private Declare Function ScreenToClient Lib "user32" (ByVal hWnd As Long, lpPoint As POINTAPI) As Long Public Sub ModificarAlto(lngNumReg As Long, cbo As ComboBox, frmT As Form, Desplegar As Boolean) Dim pt As POINTAPI Dim rc As RECT Dim cWidth As Long Dim newHeight As Long Dim oldScaleMode As Long Dim numItemsToDisplay As Long Dim itemHeight As Long Const CB_SHOWDROPDOWN = &H14F Const CB_GETITEMHEIGHT = &H154 numItemsToDisplay = lngNumReg oldScaleMode = frmT.ScaleMode frmT.ScaleMode = vbPixels cWidth = cbo.Width itemHeight = SendMessage(cbo.hWnd, CB_GETITEMHEIGHT, 0, ByVal 0) newHeight = itemHeight * (numItemsToDisplay + 2) Call GetWindowRect(cbo.hWnd, rc) pt.x = rc.Left pt.y = rc.Top Call ScreenToClient(frmT.hWnd, pt) Call MoveWindow(cbo.hWnd, pt.x, pt.y, cbo.Width, newHeight, True) If Desplegar = True Then Call SendMessage(cbo.hWnd, CB_SHOWDROPDOWN, True, ByVal 0) End If frmT.ScaleMode = oldScaleMode Set frmT = Nothing Set cbo = Nothing End Sub
__________________ :pensando: Ramon Martinez... Chile :adios: |