¿Cuál es la forma correcta de dibujar una línea con el mouse en C #?

Este es mi código de dibujo para dibujar una línea personalizada con el mouse en un Gráfico. ¿Pueden ayudarme a hacerlo de la manera adecuada?

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 se desvanece. Desaparece cada vez que se genera el evento onPaint.

Respuestas a la pregunta(4)

Su respuesta a la pregunta