2011-12-08 16 views
2

私はdPanelという名前のパネルを持っています。そのパネルのbackgroundImageをdImageという名前の画像で設定します。次に、パネル上にポイントを描画したい、つまりマウスを使用してパネルを色付けしたいと思います。図面と画像を一緒に保存できるようにしたい後で。私のコードは、これを行うが、絵は描く時に点灯し、その非常にslow.Hereが私のコードです:イメージでパネルにポイントを描く方法

private void drawP_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (!drawbool) 
     { 
      dStartPoint = e.Location; 
      drawbool = true; 
     } 
     drawP.Invalidate(); 
    } 
private void drawP_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (drawbool) 
     { 
      dStartPoint = e.Location; 
      drawP.Invalidate(); 
     } 
    } 
private void drawP_MouseUp(object sender, MouseEventArgs e) 
    { 
     if (drawbool) 
     { 
      drawbool = false; 
     } 
    } 
    private void drawP_Paint_1(object sender, PaintEventArgs e) 
    { 
     if (drawbool) 
     { 
      int dStartX = dStartPoint.X; 
      int dStartY = dStartPoint.Y; 
      e.Graphics.DrawEllipse(dP, dStartX, dStartY, 2, 2); 
      Bitmap dPPB = new Bitmap(drawP.Width, drawP.Height); 
      drawP.DrawToBitmap(dPPB, new Rectangle(0, 0, drawP.Width, drawP.Height)); 
      drawP.BackgroundImage = (Image)dPPB; 
     } 
    } 

Whaniソリューションですか?前もって感謝します。

+0

あなたはどのように矩形、円などのような図形を描画したいのですか? –

+0

パネル上でマウスをドラッグすることによってセパラルドットを描画したい –

+0

いいえ、まずはWinFormsでの描画についての明確な考え方があります。 C#でwinformsをドラッグし、ドットは描画しないで、線を描くことができます。どのようにしてドレージングによってドットを描くことができますか? –

答えて

1

パネル上の描画に関するこの素晴らしい例を確認してください:Painting on a Panel

後でパネルのメソッドDrawToBitmapを呼び出すだけで、図面を保存することができます。

+0

記事は私にたくさんの助けを与えました。たくさん –

関連する問題