[SOLUCIONADO] Ayuda con Cargado de formularios en vb 2010

Iniciado por Patxiku69, 16 Enero 2013, 19:51 PM

0 Miembros y 1 Visitante están viendo este tema.

Patxiku69

Buenas, tengo un problema que lleva amargándome toda la tarde.
Tengo un programa con varios formularios, un formulario abre otro formulario etc...

El problema es, que al abrir el segundo formulario desde el primero, el formulario se me carga después de abrirlo.

E intentado usar Load y después Show(), pero no me deja y no creo que esa sea la solución.

Gracias de antemano.

Danyfirex

Explícate mejor no entiendo nada

el formulario se me carga después de abrirlo????????????


esto va en .NET

Patxiku69

A ver si consigo explicarme :)
Tengo Un formulario que al clickar a un boton llama a una funcion que abre otro formulario independiente que a su vez carga mas formularios dentro suyo

TomaSs

Si pero explica mejor. Haces esto:
Tengo Un formulario que al clickar a un botón llama a una función que abre otro formulario independiente que a su vez carga mas formularios dentro suyo

y que problema te sucede? porque entre las dos explicaciones aún no se que quieres decir, y no parece un tema muy difícil de explicar...

Patxiku69

El asunto es, que al abrir el siguiente formulario, carga sus componentes después de volverse visible y no antes. Como puedo hacer que no sea visible hasta que se cargue?

TomaSs

Pues hombre, si tu le añades lo que le quieras añadir antes de hacer el show, así debería ser.
Ahora bien, el formulario en si, cuando se dibuja en pantalla, es evidente (supongo) que primero se dibuja el y después sus controles, etc

Patxiku69

Yo tengo entendido (no se si sera del todo cierto) que hay una opción para cargar el formulario en memoria, sin estar visible, y mostrarlo cuando se cargue completamente.

Novlucker

Por que demora en cargar, ¿tienes algo "pesado" en el load del form?

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Patxiku69

Tengo todo el código para organizar la estructura del diseño del programa, alarga los paneles, se adapta a la pantalla etc...

Novlucker

Intenta algo como esto ...

Código (csharp) [Seleccionar]
   // Tu form main
   public partial class Form1 : Form
   {
       public Form1()
       {
           InitializeComponent();
       }

       private void Form1_Load(object sender, EventArgs e)
       {
           Form2 f = new Form2();
           f.DoLoadAndShow();
       }
   }

   // Tu segundo formulario
   public partial class Form2 : Form
   {
       public Form2()
       {
           InitializeComponent();
       }

       private void Form2_Load(object sender, EventArgs e)
       {
           // se ha removido todo el codigo
       }

       private void DoSomething()
       {
           // aqui el codigo de tu load
           MessageBox.Show("Esto es un test desde form 2");
       }

       internal void DoLoadAndShow()
       {
           DoSomething();
           this.Show();
       }
   }


En lugar de invocar a Show ejecutas DoLoadAndShow, que se encarga de ajustar tus controles y luego poner el form visible.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein