Veamos tengo una aplicación con la ventana principal mdi q contiene
ventanas hijas.
Quiero montar las ventanas hijas cada una en un thread
Tengo una clase que pasandole la clase del formulario y la ventana padre
debe encargarse de crear el thread montar la ventana y visualizarla.
Funciona todo correctamente menos la linea en la que se asigna la
propiedad de MdiParent del formulario que me da una excecion con el
mensaje "Controls created on one thread cannot be parented to a control
on a different thread."
El codigo es el siguiente
private class b_i_window_threader
//el hilador de ventanas
{
private Object i_frm;
private Thread i_th_frm;
private Type i_t_tipo;
private Form i_frm_padre;
public b_i_window_threader(Type tipo,Form Padre)
{
i_t_tipo=tipo;
i_frm_padre=Padre;
i_th_frm= new Thread(new ThreadStart(carga));
i_th_frm.Start();
}
public void carga()
{
i_frm = Activator.CreateInstance(i_t_tipo);
String key = Guid.NewGuid().ToString();
((Form)i_frm).AccessibleName = key;
/*error*/ ((Form)i_frm).MdiParent =i_frm_padre ;
i_th_frm.Name=((Form)i_frm).Text;
Application.Run((Form)i_frm);
}
}
como puedo evitar este problema?
Gracias por adelantado:
Kano
Leer las respuestas