我不知道要传递给我的方法来正确调用我的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();
它将绘制圆圈,但不会在图片框中绘制。我需要一个圆圈才能进入图片框。
答案 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);
}