Questo è il mio codice di disegno per disegnare una linea personalizzata con il mouse su un grafico. Potete per favore aiutarmi a farlo nel modo giusto?Qual è il modo corretto di disegnare una linea con il mouse in 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;
}
}
}
Il problema è che quando ridimensiono il modulo la mia riga scompare. Scompare ogni volta che viene generato un evento onPaint.
Puoi spiegare, cosa intendi esattamente con * correttamente *? In * qualsiasi * caso, dovrai gestire gli eventi 'Mouse su/giù/sposta '. –
Per chiarimenti, questa domanda è in risposta a un problema sollevato nel rispondere a una domanda precedente: http://stackoverflow.com/questions/4164190/how-to-save-graphics-object-as-image-in-c/4164625 # 4.164.625. Vuole sapere il modo migliore per modificare il codice esistente per disegnare nell'evento 'Paint', invece di usare' CreateGraphics'. –
Esistono vari esempi di esempi di pittura su CodeProject. Si va dal molto semplice al piuttosto complesso. Controlla alcuni di loro. Vedrai i diversi modi in cui puoi farlo correttamente, sebbene tutti i metodi implichino il salvataggio dei punti di spostamento del mouse in una raccolta e il loro ridisegno in un gestore di eventi paint. –