Foros del Web » Programación para mayores de 30 ;) » .NET »

Redibujar PictureBox C# 2.0

Estas en el tema de Redibujar PictureBox C# 2.0 en el foro de .NET en Foros del Web. Buenas tardes, pues eso... Tengo un PictureBox, en el cual, si das al boton del mouse dentro del picture, empiezo a dibujar. Pero cuando minimizo ...
  #1 (permalink)  
Antiguo 23/10/2007, 01:01
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Redibujar PictureBox C# 2.0

Buenas tardes, pues eso...

Tengo un PictureBox, en el cual, si das al boton del mouse dentro del picture, empiezo a dibujar. Pero cuando minimizo y luego restauro, la imagen se va.

Se que tengo que añadir algo al Evento Paint del PictureBox, pero la verdad, no se como implementarlo.

Les agradeceria me orienten, he mirado un poco por internet, pero no vi la respuesta concreta a esto, ya que algunos llaman en el Evento a un metodo que les repinta lo programado, pero en mi caso, tendría que repintar lo que ya existe en el Picture.

En fin si me pueden ayudar, les agradeceria mucho.

un saludo.



P.D.: Queria crear un array de Point, pero no se que tamaño va a tener, ya que dependera de cuanto tiempo se tenga el botón pulsado. La estoy declanrado asi: Point[] puntos = new Point[]; (Error: Array creation must have array size or array initializer)
__________________
Charlie.
  #2 (permalink)  
Antiguo 24/10/2007, 15:08
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Redibujar PictureBox C# 2.0

Hola, creo que tenemos el mismo problema. Por si te sirve mira este post: http://www.forosdelweb.com/f29/probl...raphics-528099
De todas formas, creo que el PictureBox tiene una función Refresh() que te pudiera servir si la pones en el método OnPaint. (¿o Paint?)
Espero te sirva, si sabes algo, me ayudarías mucho si me avisas.
Gracias y saludos!!!



P.D: ¿Has logrado dibujar encima de un PictureBox? ¿Cómo lo has hecho?

Última edición por kalixe985; 24/10/2007 a las 15:24 Razón: cambio
  #3 (permalink)  
Antiguo 25/10/2007, 00:29
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Re: Redibujar PictureBox C# 2.0

Bueno amigo, sobre lo de dibujar en un PictureBox:
Código:
        private bool hazDibujo = false;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            hazDibujo = true;
        }
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            hazDibujo = false;
        }
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if(hazDibujo)
            {
                Graphics objGrafico = objPicture.CreateGraphics();
                Pen objLapiz = new Pen(Color.Black, (float)tamanioPluma.Value);

                objGrafico.DrawEllipse(objLapiz, e.X, e.Y, (float)tamanioPluma.Value, (float)tamanioPluma.Value);
                objPuntos.Add(new Point(e.X, e.Y));
            }
        }

Sobre lo otro, ya te digo de antemano que Refres(); en el metodo Paint() no sirve, ya que estaría limpiando constantemente el PictureBox.

Por favor, ayuda !!!
__________________
Charlie.
  #4 (permalink)  
Antiguo 25/10/2007, 03:35
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Re: Redibujar PictureBox C# 2.0

De acuerdo, creo que tu código me servirá de mucho y si sé algo sobre como hacer que no se borren los objetos Graphics te lo diré.
Una última cosa, en tu código aparecen los objetos objPicture y objPuntos, ¿De que tipo son? objPicture supongo que será el formulario, pero el otro no sé de que tipo pudiera ser. A ver si me puedes ayudar.
He probado tu código sin la parte de objPuntos.Add(new Point(e.X, e.Y)); y NO me dibuja nada si lo hago encima del pictureBox, pero si lo pruebo en el formulario, sí que dibuja. Es como si al dibujar encima del pictureBox, éste estuviera encima y no dejara ver lo que se dibuja debajo. En cambio en el área del formulario, como no hay nada encima, dibuja correctamente. ¿Sabes por qué puede ser? ¿Quizá le hace falta la línea de código objPuntos.Add(new Point(e.X, e.Y)) ?





Gracias por responder y saludos!!!!!

Última edición por kalixe985; 25/10/2007 a las 04:33
  #5 (permalink)  
Antiguo 25/10/2007, 05:28
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Re: Redibujar PictureBox C# 2.0

objPicture es el PictureBox.

objPuntos.add.... suprime esa linea.
__________________
Charlie.
  #6 (permalink)  
Antiguo 25/10/2007, 10:07
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Re:RE Redibujar PictureBox C# 2.0

De acuerdo. Creo que si es pictureBox sí que funcionará. Ya te diré.....

Gracias y saludos!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:49.