pintar

21/06/2005 - 22:53 por ruben | Informe spam
Buenas, estoy haciendo unas pruebas con GDI+ y me
gustaria saber porqué no funciona este codigo:

private void button1_Click(object sender,
System.EventArgs e)
{
Graphics grafico = pictureBox1.CreateGraphics();
grafico.DrawLine(Pens.Red,0,0,100,100);
}

Mi idea es que al hacer clic en un boton se dibuje una
linea en un picturebox.
Soy consciente de que al no ponerlo en un evento paint
cuando haya q redibujar la ventana perderia el dibujo,
pero por qué si no hay que redibujar no funciona??

Preguntas similare

Leer las respuestas

#1 jescrich
21/06/2005 - 23:21 | Informe spam
Hola Ruben,

Fijate que debes tener otro código que esta provocando el paint del
formulario, el código que adjuntas esta correcto.

Te adjunto un ejemplo y un link al msdn en español

System.Drawing.Pen myPen;
myPen = new System.Drawing.Pen(System.Drawing.Color.Red);
System.Drawing.Graphics formGraphics = this.CreateGraphics();
formGraphics.DrawLine(myPen, 0, 0, 200, 200);
myPen.Dispose();

http://msdn.microsoft.com/library/s...isualc.asp

José Escrich

Respuesta Responder a este mensaje
#2 Tristan
22/06/2005 - 16:31 | Informe spam
En realidad ruben ese código si funciona. Si por un casual no ves la linea,
será por que por alguna razón, se está redibujando la ventana.

De todas formas, hacerlo bien, de forma que sea persistente, no cuesta mucho
más:

Bitmap imagen = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics lienzo = Graphics.FromImage(imagen);
lienzo.DrawLine(Pens.Red, 0, 0, 100, 100);
pictureBox1.Image = imagen;
lienzo.Dispose();

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