Witam wszystkich na forum!
Uczę się od niedawna dlatego proszę o wyrozumiałość.

Piszę program do rysowania linii łamanych i mam następujący problem. Rysuje siatkę w tle, która będzie w przyszłości przyciągać końce linii, tylko jest taki problem że gdy rysuje linie (ruszam myszką) to siatka znika. Jak to mam rysować żeby było dobrze?;) Gdybym wrzucił rysowanie siatki do tego samego eventu co rysowanie linii to siatka dopiero by pojawiała się po poruszeniu myszką.

W momencie kliknięcia lewym przyciskiem myszy współrzędne zostają dodane do listy: public List<xy> punkty = new List<xy>();
Lista jest zbindowana z datagridview i jest możliwa edycja współrzędnych przez datagridview oraz przez przemieszczanie końców linii.

Daje poniżej najważniejsze fragmenty kodu

rysowanie siatki:

private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
{

        Bitmap obrazek = bmpBack.Clone() as Bitmap;
        Graphics g = Graphics.FromImage(obrazek);
        pictureBox1.Image = obrazek;

        for (int oczko_rysowanie = 0; oczko_rysowanie < 1000; oczko_rysowanie++)
        {

// odleglosc x i y odczytuje z textboxow
float siatka_x = oczko_x * oczko_rysowanie;
float siatka_y = oczko_y * oczko_rysowanie;

            g.DrawLine(styl_siatki, 0, siatka_x, 1000, siatka_x); //linie poziome
            g.DrawLine(styl_siatki, siatka_y, 0, siatka_y, 600); // linie pionowe        
        } 
        
            obrazek = pictureBox1.Image.Clone() as Bitmap;

         }

rysowanie linii:
<code class="c#">
 private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
        {           

            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                if ((punkty.Count > -1) && domkniecie == false)
                {
          
                    this.i++;
                    punkty.Add(new xy() {nr=i+1, x = e.X, y = e.Y });               
                    Bitmap obrazek = bmpBack.Clone() as Bitmap;

                    this.rysujemy = true;                                                                            
                }
            }
 }

    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {       
            if (rysujemy == true && domkniecie == false)
            {
                Bitmap obrazek = bmpBack.Clone() as Bitmap;
                Graphics g = Graphics.FromImage(obrazek);
                pictureBox1.Image = obrazek;

                g.DrawLine(styl_linii, punkty[i].x, punkty[i].y, (float)e.X, (float)e.Y);            
                g.Dispose();                
            }