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.
Explícate mejor no entiendo nada
el formulario se me carga después de abrirlo????????????
esto va en .NET
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
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...
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?
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
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.
Por que demora en cargar, ¿tienes algo "pesado" en el load del form?
Saludos
Tengo todo el código para organizar la estructura del diseño del programa, alarga los paneles, se adapta a la pantalla etc...
Intenta algo como esto ...
// 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
Muchisimas gracias! me ha funcionado a la perfection ;D ;D ;D ;D
Excelente entonces :D