Este es mi código de dibujo para dibujar una línea personalizada con el mouse sobre un Gráfico. ¿Puedes ayudarme a hacerlo de la manera adecuada?¿Cuál es la forma correcta de trazar una línea con el mouse en C#
namespace Grafi
{
public partial class Form1 : Form
{
bool isDrawing = false;
Point prevPoint;
public Form1()
{
InitializeComponent();
}
private void chartTemperature_MouseDown(object sender, MouseEventArgs e)
{
isDrawing = true;
prevPoint = e.Location;
}
private void chartTemperature_MouseMove(object sender, MouseEventArgs e)
{
Pen p = new Pen(Color.Red, 2);
if (isDrawing)
{
Graphics g = chartTemperature.CreateGraphics();
g.DrawLine(p, prevPoint, e.Location);
prevPoint = e.Location;
numOfMouseEvents = 0;
}
p.Dispose();
}
private void chartTemperature_MouseUp(object sender, MouseEventArgs e)
{
isDrawing = false;
}
}
}
El problema es que cuando cambio el tamaño de mi línea desaparece. Desaparece cada vez que se genera un evento onPaint.
¿Puede explicar qué quiere decir con * properly *? En el caso * any *, tendrá que manejar los eventos 'Mouse Up/Down/Move'. –
Para aclarar, esta pregunta es en respuesta a un problema planteado al responder a una pregunta anterior: http://stackoverflow.com/questions/4164190/how-to-save-graphics-object-as-image-in-c/4164625 # 4164625. Él quiere saber la mejor manera de modificar el código existente para dibujar en el evento 'Paint', en lugar de usar' CreateGraphics'. –
Hay varias buenas muestras de muestras de pintura en CodeProject. Van desde lo más simple a lo bastante complejo. Verifica algunos de ellos. Verá las diferentes maneras en que puede hacer esto correctamente, aunque todos los métodos implicarán guardar los puntos de movimiento del mouse en una colección y volver a dibujarlos en un controlador de eventos paint. –