• Miércoles 20 de Noviembre de 2024, 12:32

Autor Tema:  Dibujando En Picturebox  (Leído 4084 veces)

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Dibujando En Picturebox
« en: Sábado 2 de Febrero de 2008, 17:41 »
0
Hola gente sabia.

Tengo una pregunta.

Hace unos días hice un programita que permite dibujar unas figuras en un PictureBox basándome un una WEB (Que no recuerdo). El problema es que al minimizar y restaurar la pantalla (Por ejemplo), lógicamente el contenido del PictureBox se borra.
Para solucionarlo, he colocado en el evento Paint el código que se encarga de dibujar la cuadrícula. Por lo que esta debería verse permanentemente. Pero esto no es así, aunque el código del evento sí se ejecuta.

¿Alguien puede decirme por qué?


Gracias gente.


PD: Adjunto el código.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Dibujando En Picturebox
« Respuesta #1 en: Domingo 3 de Febrero de 2008, 01:08 »
0
Tienes la aplicación mal diseñada.

Cambios sugeridos:

1- Crea un arreglo de las cosas que se dibujan en pantalla, por ejemplo vas guardando que cuadros o elipses se deben dibujar en que posiciones etc
2- Luego en el evento paint lo que haces es recorrer ese arreglo y pintar los cuadros
3- Para que el evento paint te funcione debes usar el PaintEventArgs:

Código: Text
  1. Graphics gr&#59;
  2. private void pbDibujo_Paint(object sender, PaintEventArgs e)
  3. {
  4.   gr = e.Graphics;
  5.  
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Dibujando En Picturebox
« Respuesta #2 en: Domingo 3 de Febrero de 2008, 20:08 »
0
Cita de: "JuanK"
Tienes la aplicación mal diseñada.

Cambios sugeridos:

1- Crea un arreglo de las cosas que se dibujan en pantalla, por ejemplo vas guardando que cuadros o elipses se deben dibujar en que posiciones etc
2- Luego en el evento paint lo que haces es recorrer ese arreglo y pintar los cuadros
3- Para que el evento paint te funcione debes usar el PaintEventArgs:

Código: Text
  1. Graphics gr;
  2. private void pbDibujo_Paint(object sender, PaintEventArgs e)
  3. {
  4.   gr = e.Graphics;
  5.  
¡ Excelente Juan !

En cuanto a los puntos 1 y 2, si, ya los tenía en cuenta pero solamente estaba haciendo pruebas.

Ahora usando PaintEventArgs anda perfecto.

Gracias capo.

Un saludo :beer:

PD: Adjunto el código por si a alguien le sirve.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.