Usuario
Copiar Items de Un listview a Otro

Pregunta
-
estoy realizando ciertas cosas con dos listview en diferentes Forms, He logrado Copiar los items del primer Form al Segundo, Pero el Problema radica en que Copia los items 2 veces(o sea repite la misma accion) Dejo el Codigo por si alguien por ahi puede ayudarme
Dim f2
f2 = New Form10
If ListView1.Items.Count > 0 Then
For i = ListView1.Items.Count - 1 To 0 Step -1
Dim litem1 As ListViewItem
For Each litem1 In ListView1.Items
Form10.ListViewtotal.Items.Add(litem1.Clone)
Next
Next i
End If- Cambiado Enrique M. Montejo sábado, 28 de abril de 2012 11:44 controles de Windows Forms (De:Lenguaje VB.NET)
Todas las respuestas
-
1. Coloca ese mismo codigo en una clase statica, luego cuando quiera utilizar el codigo lo llamaria de esta forma
NameSpaceName.ClaseName.MethodName
2. si lo coloca en una clase no statica debera crear una instancia de esta clase ante de llamar el metodo, algo asi
Dim theclass As NameSpaceName.ClaseName = New Class1() theclass.copyitem()
Angel R. Jimenez G.
Software Development
Santo Domingo
Republica Dominicana
Blog -
y eso eliminaria la repeticion de Inserciones en el segundo Listview, El codigo funciona Perfectamente, Lo unico que falla es que inserta 2 veces lo mismo
ejemplo
listview 1 listview 2
1 1
2 2
1
2
creo que hay algo en el for que hace que se repita la rutina 2 veces
- Editado Saurik lunes, 9 de abril de 2012 23:29
-
es que no veo correcto que estes haciendo esto
Form10.ListViewtotal.Items.Add(litem1.Clone)
porque ese Form10 no es la instancia del formulario que luego visualizas
la instancia es f2 donde haces el New de Form10, es mas tampoco esta correcto que accedas directo a los controles deberias tomar la info del listview y pasarla al segundo usando propiedades o el constructor
[WinForms] – Pasaje de información formulario hijo
o sea no hacer un add() de un close de item directo en los controles sino pasar los datos simples de un control al otro
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
es que no veo correcto que estes haciendo esto
Form10.ListViewtotal.Items.Add(litem1.Clone)
porque ese Form10 no es la instancia del formulario que luego visualizas
la instancia es f2 donde haces el New de Form10, es mas tampoco esta correcto que accedas directo a los controles deberias tomar la info del listview y pasarla al segundo usando propiedades o el constructor
[WinForms] – Pasaje de información formulario hijo
o sea no hacer un add() de un close de item directo en los controles sino pasar los datos simples de un control al otro
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
el primer error es usar
Form10 en lugar de f2 que es la instancia del formulario
por lo que deberias usar
f2.ListViewtotal.Items.Add(litem1.Clone)
pero como comente no es la mejor opcion porque no deberias acceder directo a los controles
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Es que esta mejor opcion que encontre para listview(casi todos esta para datagrid) y no necesita estar chequeado ni nada de eso, Aunque en realidad no se como implementar la informacion que me diste, y te agradeceria me pudieses ayudar a corregir el codigo o en su caso ayudarme a implementar la info en serio te lo agradecere por que tu eres de los pocos que tiene ese conocimiento