none
Copiar contenido de un Panel2 a un Panel1 vb.net 2010 RRS feed

  • Pregunta

  • Hola.
    Vieron cuando tenemos una variable A=0 y una variable B=5 . Y queremos hacer que A sea igual a B simplemente hacemos A=B y problema resuelto.
    Ahora imaginen esto con Paneles.
    En Panel2 tengo 3 textbox por ejemplo, como podría hacer para que Panel1 también los tenga (al igual que todas sus propiedades, tamaño, fondo, color, etc.)?
    Hay alguna forma de hacer esto en la que consuma pocos recursos ?(ya que lo voy a tener que hacer varias veces).

    Pregunto esto porque mi programa se esta volviendo un poco lento y estoy buscando formas de optimizarlo. 

    • Cambiado Enrique M. Montejo sábado, 6 de enero de 2018 17:37 Pregunta relacionada con controles de Windows Forms.
    jueves, 4 de enero de 2018 14:37

Todas las respuestas

  • Suponiendo q todos los controles q tienes en el panel1 tienen el.metodo clone():

    Panel1.controls.Tolist().foreach(c=>{

    Panel2.controls.add(c.clone());

    });

    Sino tienen el método clone() entonces dentro de la estructura del foreach tienes q una instancia r un control nuevo y para cada propiedad de c que es el control original asignar al nuevo control ese valor en su propiedad y tb lo mismo para los eventos:

    Suponemos q cada control en panel1 es un label

    Panel1.controls.Tolist().foreach(c=>{

    If (typeof(c) id Label)

    {Label c1 = new Label();

    // Propiedades

    c1.Text=((Label)c).Text;

    .....

    }

    // Eventos

    c1.OnClick += c.onClick()

    ......

    Panel2.controls.add(c1);

    });

    • Propuesto como respuesta vyrcyrus_ jueves, 4 de enero de 2018 15:56
    jueves, 4 de enero de 2018 15:53
  • Creo que mejor deberías crearte un usercontrol.

    Saludos cordiales,

    jueves, 4 de enero de 2018 15:57