Вопрос по drawing, picturebox, c#, graphics, tabcontrol – Как сохранить графический рисунок в картинке на вкладке после перехода на вкладку 2 и возврата на вкладку 1?

1

У меня есть вкладка с двумя (2) вкладками. Вкладка 1 выполняет рисование в графическом окне (графическое поле является необязательным, я могу рисовать непосредственно на вкладке) с помощью Graphics Addline. Вторая вкладка открывает веб-браузер. Все работает нормально. Я могу сделать рисунок на первой вкладке, но когда я переключаюсь на вторую вкладку и возвращаюсь на первую вкладку, рисунок исчезает, и если я возвращаюсь на вкладку 2, я вижу, что я смотрел в веб-браузере. Мне нужно сохранить рисунок на вкладке 1, поэтому, когда я вернусь к нему, я смогу его увидеть. Вот код, который я использую для рисования на вкладке 1:

private void DataLoaded(ref string strFileName)  //strFileName has the data 
need for the drawing.
{

 Graphics g = this.pictureBox1.CreateGraphics();

 Pen black = new Pen(Color.Black, 5); 

 Pen green = new Pen(Color.Green, 5); 

 List<double> xpoints = new List<double>(); 

 List<double> ypoints = new List<double>();

 g.TranslateTransform(350, 350);

 g.DrawLine(green, new Point(Convert.ToInt32(X1), Convert.ToInt32(Y1)), new  
 Point(Convert.ToInt32(X2), Convert.ToInt32(Y2))); 

 for (int i = 2; i < xpoints.Count(); i++){

            g.DrawLine(black, new Point(Convert.ToInt32(X1), 
            Convert.ToInt32(Y1)), new Point(Convert.ToInt32(X2), 
            Convert.ToInt32(Y2))); 

            X1 = X2;                                            
            Y1 = Y2;                                            

            X2 = xpoints[i];                                    
            Y2 = ypoints[i];                                   

        }// end of for 

}

Я даже пытался сделать рисунок с помощью Painteventarg, но он не работает вообще. Это мне немного помогло, потому что когда я переключаюсь обратно на вкладку 1 и перемещаю мышь над вкладкой, она снова рисует линии. Кто-нибудь может мне с этим помочь?? Я даже пытался использовать this.picturebox1.Invalidate (), но ничего. Как я уже сказал, мне нужно: сохранить чертеж на вкладке 1 после перехода на вкладку 2, чтобы, когда я вернулся на вкладку 1, линии были там. Заранее спасибо за помощь!!!.

Ваш Ответ

1   ответ
1

я просто использовал растровое изображение для рисования и установил изображение в картинке с помощью растрового изображения.

Код, который я использовал, выглядит следующим образом:

Bitmap image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(image);

// In between all the code required for extracting the data and do the draw.

pictureBox1.Image = image;

В любом случае, спасибо тому, кто увидел мой вопрос и попытался на него ответить.

Похожие вопросы