Listview

Estoy programando en visual basic 6.0 y necesito pasar la información que esta en un listview en un formulario a otro listview que se encuentra en otro formulario, necesito que se pase absolutamente todo lo que contiene el listview, es decir, necesito que el listview que se encuentra en el segundo formulario sea una copia exacta del que se encuentra en el primer formulario. Si me puedes ayudar con este problemita te lo agradeceré muchísimo...

3 respuestas

Respuesta
1
Ok, pues mira, como ves el código lo hice de una carrerita en el trabajo, francamente lo que menos hago es estar en casa, ya que mi trabajo implica dar vueltas y más vueltas y llego a casa y de lo que menos me acuerdo es de tocar la pc, pero dejame lo arreglo y mañana te lo mando correguido.
Ok gracias, yo espero no te preocupes, entiendo que a veces el trabajo nos absorbe de tal manera que cuando llegamos a la casa lo único que queremos es descansar y olvidarnos de todo.
De todos modos gracias por tu colaboración y hablamos mañana...
El código si me dio falla, me dice que el indice esta fuera de los limites, trate de ponerlo:
For i=0 to Form1.ListView1.ListItems.Count -1
Y luego donde dice ListItems(i) puse ListItems(i+1) que es como lo tengo en otro formulario, pero igual me dice que el indice esta fuera de los limites
Pues lo que puedes hacer es crear exactamente los dos listview iguales, mismo numero de columnas y si es posible mismo nombre, la idea es no batallar tanto al asignar los valores.
Suponiendo que solo tienes una única fila y están en fase de lista por ejemplo puedes intentar un código como el que sigue.
Private Sub cmdCopiar_Click()
Dim i As Integer
For i=1 To Form1.ListView1.ListItems.Count
DoEvents
Form2. ListView1. ListItems. Add, Form1. ListView1. ListItem(i).Text 'y el resto de paramentros ya que solo importa el texto
Next
End Sub
Pues en teoría seria todo, solo debes recorrer mediante un ciclo tu primer listview e ir agregando cada elemento al siguiente, probablemente este código te de fallas porque lo hice de carrera y sin usar vb (donde estoy no lo tengo instalado), pero si tienes problemas me dices, por otro lado si tienes más columnas pues igual, asignas los valores de cada columna leída a la columna del otro y así hasta acabar.
Private Sub Command1_Click()
Dim i As Integer
Form2.Show
For i = 1 To ListView1.ListItems.Count
DoEvents
Form2.ListView1.ListItems.Add , , ListView1.ListItems(i).Text
Next
End Sub
Private Sub Form_Load()
ListView1. ListItems. Add,, "Elemento 1"
ListView1. ListItems. Add,, "Elemento 2"
ListView1. ListItems. Add,, "Elemento 3"
ListView1. ListItems. Add,, "Elemento 4"
ListView1. ListItems. Add,, "Elemento 5"
End Sub
Respuesta
1
¿Qué error te da?
Ya coloque el código que me dijiste, cambiando los nombres del los listview por los que tengo yo y cambiando también el nombre del formulario, pero cuando lo corro, que hago click en el botón me da un error que dice que el valor de la propiedad no es válido y señala la línea que dice frm2.ListView1.ListItems...
Pues puedes hacer lo siguiente:
En el primer formulario puedes poner un botón que sea el de "Copiar List View"
Y dentro de el puedes poner el siguiente código:
For i = 0 To ListView1.ColumnHeaders.Count-1
frm2.ListView1.ListItems.Add.SubItems(i)= ListView1.ListItems.Add.SubItems(i)
next i
El error dice exactamente así:
Error '380' en tiempo de ejecución:
El valor de la propiedad no es válido
Prueba con esto a ver:
for i=1 to listview1.listitems.count
frm2.ListView1.ListItems.Add i, , ListView1.ListItems.Item(i)
next i
A ver si este código te sirve
Ok, ahora si me pasa los datos, pero tengo otro problemita, se supone que el listview de donde los estoy pasando es como un reporte, (más o menos como si fuera un datagrid) y cuando me pasa los datos los pasa todos de forma desordenada, entonces cuando coloco en las propiedades del segundo listview view=lvwReport, que es como esta en el primero, no me pasa ningún dato, ¿no entiendo porque?
A tanto ya no llegan mis conocimiento del List View.
http://www.programacion.com/foros/32/msg/123041/
Pasate por esta dirección que este chaval me resolvió a mi un problemilla, a ver si te resuelve el tuyo también.
Gracias por todo, de verdad me haz ayudado bastante. Pasare por el foro que me dices a ver si me pueden ayudar tanto como me haz ayudado tu
De verdad muchas gracias...
Respuesta
1
Siento no poder ayudarte, pero cuando hago algo parecido paso los campos de un formulario a otro a través de variables globales.
Lo siento muchísimo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas