1

2 つのタブを持つタブ コントロールがあります。タブ 1 は、Graphics Addline を使用して画像ボックス (画像ボックスはオプションです。タブに直接描画できます) で描画を行います。2 番目のタブは Web ブラウザーを開きます。すべてが正常に機能しています。最初のタブで描画できますが、2 番目のタブに切り替えて最初のタブに戻ると描画が消え、2 番目のタブに戻ると Web ブラウザーで見ていたものが表示されます。図面をタブ 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() を使用してみましたが、何もしませんでした。私が言ったように、必要なのは次のとおりです。タブ 2 に切り替えた後、タブ 1 の図面を保持して、タブ 1 に戻ったときに線がそこにあるようにします。事前に助けてくれてありがとう!!!.

4

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;

とにかく、私の質問を見て答えてくれた人に感謝します。

于 2013-05-16T17:39:25.463 に答える