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 de juancg
1
1
juancg, Lenguajes: ASP HTML/DHTML JavaScript Visual Basic C++ Java (no...
¿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.