18

我想在 bmp 图像上画一条线,该线将传递给使用 C# 中的 drawline 方法的方法

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);
}

这给出了一个错误。所以我想知道如何在这里包含绘画事件(PaintEventArgs e)

并且还想知道我们调用drawmethod时如何传递参数?例子

DrawLineInt(Bitmap bmp);

这会给出以下错误“当前上下文中不存在名称'e'”

4

2 回答 2

30

“在 bmp 图像上绘制一条线,该线将传递给 C# 中使用 drawline 方法的方法”

PaintEventArgs e 建议您在对象的“绘制”事件期间执行此操作。由于您在方法中调用它,因此您不需要在任何地方添加 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);
    }
}

重绘对象时会引发“Paint”事件。有关更多信息,请参阅:

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

于 2012-07-09T21:16:12.800 回答
6

您需要从以下对象中获取Graphics对象Image

using(var graphics = Graphics.FromImage(bmp))
{
   graphics.DrawLine(...)
}
于 2012-07-09T20:59:17.260 回答