• Domingo 19 de Mayo de 2024, 17:16

Autor Tema:  ObjectDisposedException, dibujar en picturebox, herencia visual  (Leído 1793 veces)

Sined99

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
ObjectDisposedException, dibujar en picturebox, herencia visual
« en: Martes 4 de Octubre de 2011, 15:28 »
0
Hola a tod@s!

Tengo un error a ver si alguien me puede echar una mano, estoy trabajando con winforms y estoy usando herencia visual, les comento:

Tengo una aplicacion en la que tengo una clasePadre(Formpadre), luego tengo varias clases hijas, tengo un metodo que heredan las clases hijas, que dependiendo de una variable cierra la pantalla actual y abre otra, estas 2 pantallas heredan del mismo padre, una de esas pantallas tiene un metodo para dibujar en un picturebox, el problema viene cuando se cierra la pantalla con dicho metodo para dibujar y se abre la otra pantalla, me sale una excepcion ObjectDisposedException, y creo que es debido a que se cierra la pantalla(que tiene el metodo dibujo), y se cierra pero en ese ciclo se intenta ejecutar aun el codigo de dibujar en el picture box.

¿Alguien sabe como podria solucionar esto?


Muchisimas gracias, un saludo

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:ObjectDisposedException, dibujar en picturebox, herencia visual
« Respuesta #1 en: Martes 4 de Octubre de 2011, 16:09 »
0
Hola Sined99.

Si dices que tienes problemas porque se cierra el formulario, porque en lugar de cerrarlo, mejor solamente lo ocultas con el metodo Hide(), y cuando necesites mostrarlo, utiliza el metodo Show().

Puedes utilizar ademas el evento FormClosing que se lanza cuando se trata de cerrar el formulario, y ahi cancelar el cerrado y utilizar el Hide() ahi.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Sined99

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re:ObjectDisposedException, dibujar en picturebox, herencia visual
« Respuesta #2 en: Martes 4 de Octubre de 2011, 17:36 »
0
Hola Sined99.

Si dices que tienes problemas porque se cierra el formulario, porque en lugar de cerrarlo, mejor solamente lo ocultas con el metodo Hide(), y cuando necesites mostrarlo, utiliza el metodo Show().

Puedes utilizar ademas el evento FormClosing que se lanza cuando se trata de cerrar el formulario, y ahi cancelar el cerrado y utilizar el Hide() ahi.

Saludos :)

Hola, muchas gracias por contestar

Lo cierro para no tenerlo en memoria, ya que pueden pasar muchas horas antes que se abran las otras pantallas y creo que seria un desperdicio tenerlo en memoria, ademas necesito que se cierre porque tengo 40 pantallas y no veo razonable tenerlas todas "ocultas".
Mi suposicion es que al ejecutar el
Código: [Seleccionar]
this.close();
this.dispose();
se cierra digamos la instancia de la clase pero justo antes como se esta ejecutando en el mismo hilo el metodo de dibujar e intenta dibujar pero resulta que ya no existe ese picturebox donde dibujo....