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

Rob*_*ers 1 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();
    }
Run Code Online (Sandbox Code Playgroud)

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

如果我重写我的代码

Graphics g1 = e.Graphics;
Run Code Online (Sandbox Code Playgroud)

Graphics g1 = this.CreateGraphics();
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*vid 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);
}
Run Code Online (Sandbox Code Playgroud)

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