如何从方法中调用'绘制圆'来绘制内部图片框

时间:2015-11-03 14:20:01

标签: c# winforms

我不知道要传递给我的方法来正确调用我的Circle绘图。 这是我的代码:

    private void Circle()
    {
        Graphics g1 = e.Graphics;
        Pen p1 = new Pen(Color.Black);
        g1.DrawEllipse(p1, 12, 12, 50, 50);
    }

    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
        Circle();
    }

这不起作用,因为没有'e'。

如果我从

重写我的代码
Graphics g1 = e.Graphics;

Graphics g1 = this.CreateGraphics();

它将绘制圆圈,但不会在图片框中绘制。我需要一个圆圈才能进入图片框。

2 个答案:

答案 0 :(得分:5)

如果您的方法需要引用PaintEventArgs,那么为什么不提供呢?像这样:

private void Circle(PaintEventArgs e)
{
    Graphics g1 = e.Graphics;
    Pen p1 = new Pen(Color.Black);
    g1.DrawEllipse(p1, 12, 12, 50, 50);
}

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    Circle(e);
}

这将允许其他绘制事件处理程序也为自己的控件使用该方法。

答案 1 :(得分:1)

要获取对Graphics对象的引用,您可以通过参数提供该引用。像

private void Circle(Graphics g)
{
    Pen p1 = new Pen(Color.Black);
    g.DrawEllipse(p1, 12, 12, 50, 50);
}

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    Graphics myg = e.Graphics;
    Circle(myg);
}