2012-07-09 15 views
10

は私がここにペイントイベントを含める方法を知りたいイメージに線を描く方法は?

public void DrawLineInt(Bitmap bmp) 
{ 

Pen blackPen = new Pen(Color.Black, 3); 

int x1 = 100; 
int y1 = 100; 
int x2 = 500; 
int y2 = 100; 
// Draw line to screen. 
e.Graphics.DrawLine(blackPen, x1, y1, x2, y2); 
} 

この与えるC#で方法をdrawline使用してメソッドに渡すerror.SoあるBMP画像上に線を描きたい (PaintEventArgsの電子)

また、drawmethodを呼び出すときにパラメータを渡す方法も知りたいですか? 例

DrawLineInt(Bitmap bmp); 

これは、次のエラー あなたはとても似ImageからGraphicsオブジェクトを取得する必要があり

+1

「これはエラーを与えます」。何のエラー? – Oded

答えて

16

「C#で描画メソッドを使用するbmpイメージに線を描画する」

PaintEventArgsは、オブジェクトの "paint"イベント中にこれを行うことを提案しています。メソッドでこれを呼び出すので、どこにでもPaintEventArgs eを追加する必要はありません。

この方法を使用するには、@ BFreeの答えを使用します。

public void DrawLineInt(Bitmap bmp) 
{ 
    Pen blackPen = new Pen(Color.Black, 3); 

    int x1 = 100; 
    int y1 = 100; 
    int x2 = 500; 
    int y2 = 100; 
    // Draw line to screen. 
    using(var graphics = Graphics.FromImage(bmp)) 
    { 
     graphics.DrawLine(blackPen, x1, y1, x2, y2); 
    } 
} 

"ペイント"イベントは、オブジェクトを再描画するときに発生します。詳細については、以下を参照してください

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.paint.aspx

+2

作業が終わったらペンを処分する必要があります。あるいは 'using(var blackPen = new Pen(Color.Black、3))'ブロックの中に入れてください。 –

5

を「名 『E』は現在のコンテキスト内に存在しない」を与える:

using(var graphics = Graphics.FromImage(bmp)) 
{ 
    graphics.DrawLine(...) 
} 
+0

コードのどこにでもPaintEventArgs eを追加する必要がありますか? – user1150071

+0

@ user1150071 "コードのどこにでもPaintEventArgsを追加する必要がありますか?"短い答え、いいえ。長い答えは、私のポストを見てください。 – Tom

関連する問題