Trabajo para una empresa como desarrollador de software y trabajando en proyecto encuentro un mensaje como el que se describe en el título de post, bueno, ¿qué hacer en ese caso? (programando en .Net).
Tardé mucho en encontrar la solución, agradezco en parte a éste sitio por darme una pista http://social.msdn.microsoft.com/Forums/es-ES/770bb15e-ac4f-4cfa-bba3-02b08c29f668/no-se-control-systemcomponentmodelwin32exception-error-al-crear-identificador-de-ventana.
El caso es que si nuestro programa carga muchísimas veces la misma ventana (aunque liberemos recursos) .net tarde o temprano falla, lo mejor es cargar la ventana (no importa que sea en un panel) y luego enviar los datos a ella mediante una función, en lugar de recargar una y otra vez la ventana con los nuevos datos.
Buenos dies;
ResponderBorrartengo el mismo problema; no entiendo como lo haces, ¿podrias enviar un codigo de ejemplo?
Gracias
Básicamente lo que vas a hacer es lo siguiente:
BorrarDe manera global a tu formulario, desde el cual vas a llamar a otro creas una variable como la siguiente:
Private frmemployeewindow As frmEmployee = Nothing
donde frmEmployee es el tipo de ventana a abrir (en este caso los empleados a mostrar), recuerda, no vamos a estar creando y destruyendo la ventana por cada vez que lo necesitemos, después de muchas veces vb.net da error y nos cierra la aplicación, lo que vamos a hacer es crear una ventana y reutilizarla tantas veces como sea posible, y así resolver el problema System.ComponentModel.Win32Exception
Ahora, hay que iniciar la variable la primera vez que la llamemos (esto va dentro de tu botón mostrar empleados)
If IsNothing(frmemployeewindow) = True Then
frmemployeewindow = New frmEmployee()
End If
If frmemployeewindow.Visible = False Then
frmemployeewindow.Owner = Me
frmemployeewindow.Visible = True
frmemployeewindow.ShowEmployees()
End If
Al final, como puedes ver lo único que hay que hacer es invocar la función ShowEmployees(), pero ya no creamos la ventana una y otra vez, solo la reutilizamos y asi evitamos que vb.net irremediablemente se coma toda la memoria (aunque la liberemos), espero te sirva el truco.