Вот небольшая законченная программа, которая рисует линии на основе точек (в данном случае она следует за мышью).Я думаю, вы можете преобразовать это в то, что вам нужно.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Variable that will hold the point from which to draw the next line
Point latestPoint;
private void GainBox_MouseDown(object sender, MouseEventArgs e)
{
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
// Remember the location where the button was pressed
latestPoint = e.Location;
}
}
private void GainBox_MouseMove(object sender, MouseEventArgs e)
{
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
using (Graphics g = GainBox.CreateGraphics())
{
// Draw next line and...
g.DrawLine(Pens.Red, latestPoint, e.Location);
// ... Remember the location
latestPoint = e.Location;
}
}
}
}
Одна из проблем в вашем решении заключается в том, что вы рисуете временное растровое изображение, но изображение в этом растровом изображении никогда не передается на ваше PictureBox
.В представленном здесь решении не требуется никаких дополнительных растровых изображений.