You aren't "draw on image in picturebox" - your code draws on the picture box itself:
g = pictureBox1.CreateGraphics();
If you want to draw on an Image that you can save, set the Bitmap you created as the PictureBox.Image property, and when you want to draw on it, do this:
using (Graphics g = Graphics.FromImage(myPictureBox.Image))
g.DrawLine(p, old, current);
You can then save the Image when you need to:
You should not create any Graphics context without Disposing of it immediately you are done with it: they are a scarce commodity in Windows and hanging on to them can cause problems!