Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Control Listbox

Estas en el tema de Control Listbox en el foro de Visual Basic clásico en Foros del Web. Hola que tal, tengo unas dudas con el Control listbox, nunca lo he usado y no tengo ni la mas remota idea de como se ...
  #1 (permalink)  
Antiguo 22/10/2010, 13:11
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 12 años, 11 meses
Puntos: 6
Control Listbox

Hola que tal, tengo unas dudas con el Control listbox, nunca lo he usado y no tengo ni la mas remota idea de como se usa.

mi intención es mostrar todos los datos de las empresas y que el usuario pueda seleccionar una de ella.

Claro esta este control se llenara desde una consulta sql, y que su ancho sea de acuerdo al tamaño del texto...


No pretendo que se me de el codigo solo quiero un poco de orientación.

Seguire investigado, cualquier aporte se agradece

Bendiciones...
  #2 (permalink)  
Antiguo 22/10/2010, 20:03
Usuario no validado
 
Fecha de Ingreso: junio-2010
Ubicación: Guatemala
Mensajes: 196
Antigüedad: 9 años, 3 meses
Puntos: 25
Mensaje Respuesta: Control Listbox

Saludos, creo que esto te puede ayudar.
http://www.recursosvisualbasic.com.a...l_list_box.htm
http://www.vb6.us/tutorials/indepth-...stbox-tutorial

Para llenar el list, creas un ciclo dentro del cual añades los registros de tu recordset.
  #3 (permalink)  
Antiguo 25/10/2010, 07:41
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 12 años, 11 meses
Puntos: 6
Respuesta: Control Listbox

Gracias, ya logre llenar mi ListBox y seleccionar los elementos que quiero, mi duda es ahora como se le puede hacer para que el listbox se autoajuste de acuerdo al ancho del texto.

Espero haberme explicado, cualquier aporte se agradece
  #4 (permalink)  
Antiguo 28/10/2010, 22:29
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 10 años
Puntos: 47
Respuesta: Control Listbox

Hola!!
Creo que el listbox no se ajusta al texto... eso lo hace el listview, te dejo este codigo que le pone una barra horizontal al listbox:
Código vb:
Ver original
  1. 'EN EL FORM
  2.  
  3. Private Declare Function SendMessage Lib "user32" Alias _
  4. "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
  5. ByVal wParam As Long, lParam As Any) As Long
  6.  
  7. Private Const LB_SETHORIZONTALEXTENT = &H194
  8.  
  9.  
  10. Public Sub SetListboxScrollbar(Lst As ListBox)
  11.     Dim I As Integer
  12.     Dim New_len As Long
  13.     Dim Max_len As Long
  14.    
  15.     For I = 0 To Lst.ListCount - 1
  16.     New_len = 10 + ScaleX(TextWidth(Lst.List(I)), ScaleMode, vbPixels)
  17.     If Max_len < New_len Then Max_len = New_len
  18.     Next I
  19.    
  20.     SendMessage Lst.hwnd, LB_SETHORIZONTALEXTENT, Max_len, 0
  21. End Sub
  22.  
  23. ---
  24. 'EN EL FORM_LOAD
  25.    SetListboxScrollbar lst

Para autoajustar el listview:
Código vb:
Ver original
  1. 'EN UN MODULO
  2. 'constantes para usar con SendMessage
  3. Private Const LVM_FIRST As Long = &H1000
  4. Private Const LVM_SETCOLUMNWIDTH As Long = LVM_FIRST + 30
  5.  
  6. ' Declaración del Api SendMessage para hacer el AutoSize de las columnas
  7. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
  8.                 ByVal hwnd As Long, _
  9.                 ByVal wMsg As Long, _
  10.                 ByVal wParam As Long, _
  11.                 lParam As Any) As Long
  12.  
  13.  
  14. Public Sub Ajustar_Ancho_Columna(El_ListView As ListView, _
  15.                              ByVal Modo_De_Ajuste As Long)
  16.      
  17.    Dim La_Columna As Long
  18.      
  19.    With El_ListView
  20.       'Recorre los encabezados
  21.      For La_Columna = 1 To .ColumnHeaders.Count
  22.          ' Aplica el Autoajuste ( -1 mediante el item, -2 mediante el caption de la columna)
  23.         Call ListView_AutoSize(El_ListView, La_Columna, Modo_De_Ajuste)
  24.       Next
  25.      
  26.    End With
  27. End Sub
  28.  
  29. Private Sub ListView_AutoSize(El_ListView As ListView, _
  30.                          ByVal La_Columna As Long, _
  31.                          ByVal Modo_De_Ajuste As Long)
  32.  
  33.    With El_ListView
  34.          
  35.       'si no está el ListView en modo reporte sale
  36.      If .View = lvwReport Then
  37.          'Si hay columnas
  38.         If La_Columna >= 1 And La_Columna <= .ColumnHeaders.Count Then
  39.             'Establece el Autosize
  40.            Call SendMessage(.hwnd, LVM_SETCOLUMNWIDTH, _
  41.                              La_Columna - 1, ByVal Modo_De_Ajuste)
  42.          End If
  43.       End If
  44.    End With
  45. End Sub
  46.  
  47. '-------------------------------------------------------
  48. 'PARA LLAMAR LUEGO DEL LLENADO DEL LISTVIEW
  49.    '(-1) Ajusta las columnas al elemento mas largo de cada columna
  50.    '(-2) Ajusta los encabezados teniendo en cuenta el caption del columnHeader
  51.    Call Ajustar_Ancho_Columna(LISTVIEW, -2)
  #5 (permalink)  
Antiguo 29/10/2010, 11:24
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 12 años, 11 meses
Puntos: 6
Respuesta: Control Listbox

Gracias Lokoman, tu aporte es muy bueno, sin lugar a duda me va a servir muchisimo y te doy nuevamente las gracias

Bendiciones

Etiquetas: control, listbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:59.