'System.ObjectDisposedException' ??? AYUDAAA !

03/08/2005 - 00:29 por Diego | Informe spam
Resulta que estoy haciendo una aplicación en Visual .Net pero entre todos
los
problemas que tengo, uno de los que necesito resolver es
el siguiente:

Resulta que en mi aplicación yo necesito llamar un formulario hijo desde un
formulario padre y lo hago de la siguiente manera.

Public Class Form1
Inherits System.Windows.Forms.Form
Dim Hijo1 As New Hijo()

Mas adelante cuando llamo al formulario hijo desde su padre lo hago de la
siguiente manera.

Hijo1.MdiParent = Me
Hijo1.Show()

Esto me funciona bien la primera vez, pero cuando yo cierro el formulario
hijo y
luego intento llamarlo otra vez me sale el siguiente error:

Excepción no controlada del tipo 'System.ObjectDisposedException' en
system.windows.forms.dll

Información adicional: No se puede obtener acceso al objeto denominado
"Hijo".

Gracias

Preguntas similare

Leer las respuestas

#1 Bernardo Campos
03/08/2005 - 01:22 | Informe spam
Seguramente el hijo lo cierras con close y ésto lo destruye al objeto.
Cambia a hide.



"Diego" wrote in message
news:#
Resulta que estoy haciendo una aplicación en Visual .Net pero entre todos
los
problemas que tengo, uno de los que necesito resolver es
el siguiente:

Resulta que en mi aplicación yo necesito llamar un formulario hijo desde


un
formulario padre y lo hago de la siguiente manera.

Public Class Form1
Inherits System.Windows.Forms.Form
Dim Hijo1 As New Hijo()

Mas adelante cuando llamo al formulario hijo desde su padre lo hago de la
siguiente manera.

Hijo1.MdiParent = Me
Hijo1.Show()

Esto me funciona bien la primera vez, pero cuando yo cierro el formulario
hijo y
luego intento llamarlo otra vez me sale el siguiente error:

Excepción no controlada del tipo 'System.ObjectDisposedException' en
system.windows.forms.dll

Información adicional: No se puede obtener acceso al objeto denominado
"Hijo".

Gracias


Respuesta Responder a este mensaje
#2 Tristan
03/08/2005 - 23:35 | Informe spam
El problema es que solo estás instanciando una vez el formulario. Cuando
esta instancia se destruye, no se puede acceder de nuevo a ella.

Por lo que dices, debes venir de versiones anteriores de vb. Te recomiendo
que eches un vistazo a este link:

http://www.microsoft.com/spanish/ms...eForms.asp

Sobre todo el apartado "¿Cómo trata este problema el Asistente para
actualización?". DefInstance es una implementación del patrón singleton,
similar a lo que hacían versiones anteriores de vb de forma transparente. Te
permitirá seguir trabajando con formularios sin ser consciente de que son
instancias de objeto, tal y como hacías hasta ahora. Tan solo deberás
acceder siempre a un formulario, escribiendo Form1.DefInstance, por ejemplo:

Form1.DefInstance.MdiParent = Me
Form1.DefInstance.Show()
...



Juan Carlos Badiola
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida