none
Copiar Items de Un listview a Otro RRS feed

  • 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)
    lunes, 9 de abril de 2012 22:09

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

    lunes, 9 de abril de 2012 22:54
  • 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
    lunes, 9 de abril de 2012 23:28
  • 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

    martes, 10 de abril de 2012 0:50
  • 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

    Bueno, y dentro de mi condicion cual es el error, Yo quisiera descubrir por que se copia dos veces cada item, para no hacer el mismo error
    martes, 10 de abril de 2012 1:14
  • 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

    martes, 10 de abril de 2012 1:21
  • 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
    martes, 10 de abril de 2012 1:37