Listview

Hola. Tengo un control listview en un formulario. Quisiera que la 1ra columna quede fija y que cuando mueva la barra de desplazamiento solo se muevan el resto de las columnas. Puede hacerse esto con este control. Si no puedo, ¿existe algún control con el cual poder hacerlo?
Gracias por tu tiempo.
Saludos, Sandra

1 respuesta

Respuesta
1
¿ListView? Supongo que me hablas de VB, ¿no?.
Bueno, el único modo de hacer eso es por código. El control no hace eso por sí solo.
Lo que se me ocurre es, teniendo la primera columna fija, mantener el resto de los datos en un array. Entonces tienes que usar un control VScrollBar puesto a la derecha del ListView, para simular el ScrollBar del control. Entonces, según los eventos del VScrollBar, ir actualizando los datos del LV manualmente:
Option Explicit
Option Base 1
Dim Datos() as String ' Datos del LV, menos la primera columna
Sub Form_OnLoad()
dim x as Integer
ReDim Datos(100,3) ' Cien registros de 3 datos (el LV tiene 4 columnas)
for x=1 to 100
'Cargo los datos de donde sea
'...
next
vscroll1.Max=100
vscroll1_Change
End Sub
Sub VScroll1_Change()
dim x as Integer,NElem as Integer
dim y as integer
NElem=VScroll1.Value+ListView1.ListItems.Count
if NElem>Ubound(Datos) then NElem=UBound(Datos)
' Cubro los datos
for x=vscroll1.Value to Nelem
for y=1 to UBound(Datos,2)
ListView1.ListItems(x-vscroll1.Value+1).SubItems(y)=Datos(x,y)
next
next
' Por si quedan líneas vacías
for y=x-vscroll1.Value+1 to ListView1.ListItems.Count
'...Aquí vacío las columnas
next
End Sub
Algo así creo que te valdría.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas