Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/09/2010, 22:33
chusterboy
 
Fecha de Ingreso: febrero-2010
Mensajes: 35
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Lentitud en el repintado de un Form Hijo (MDI)

bueno, antes que nada gracias por tu contestacion y por tus ideas, lamentablemente no entiendo muy bien la siguiente parte:

ctype(me.MdiParent,mdi).frm=nothing

dices q la ponga en el metodo closing del Form hijo, pero la variable mdi que representa, ahora el cast lo haces para convertirlo a Form y la variable frm se supone q es la instancia q usaste para mostrar el mdi hijo?, pero como puedo compartir esa variable si estan en clases diferentes?

mira yo lo hago en c# y lo hago de la siguiente manera:

cuando quiero abrir un form hijo, primero checo que haya forms activos, de ser asi los cierro y despues muestro el form hijo:

private void MostrarFrameEmpleados()
{
CerrarFormulario();
Form_Empleados frmEmpleados = new Form_Empleados();
frmEmpleados.MdiParent = this;
frmEmpleados.WindowState = FormWindowState.Maximized;
frmEmpleados.Show();
}

private void MostrarFrameProductos()
{
CerrarFormulario();
Form_Productos frmProductos = new Form_Productos();
frmProductos.MdiParent = this;
frmProductos.WindowState = FormWindowState.Maximized;
frmProductos.Show();
}

y este es el metodo para cerrar los formularios:

private void CerrarFormulario()
{
try
{
Form activo = new Form();
activo = this.ActiveMdiChild;
activo.Close();

}
catch (Exception) { }
}

sin embargo como comente, al hacerlo de esta manera y tener un form hijo activo y querer abrir otro, al momento de abrir el nuevo y realizar el repintado de los elementos del mismo, este tarda unos segundos y despues lo muestra, como podria optimizar esto?

de antemamo gracias