我正在创建一个绘图程序,假设从用户那里获取参数 (半径,高度,宽度,....等) 我创建了一个具有一个参数(半径)的类
public int faceoutline(int r)
{
Graphic = pictureBox1.CreateGraphics();
Graphic.DrawEllipse(myPen, 0, 0, r, r);
return r;
}
然后我称之为:
private void button1_Click(object sender, EventArgs e)
{
faceoutline(int.Parse(textBox1.Text));
pictureBox1.Invalidate();
}
....没有任何反应 我将按钮代码复制到计时器但它保持balnking 我做错了什么?!
答案 0 :(得分:2)
您应该将绘图代码放在Paint
的{{1}}事件处理程序中,并使用事件args中提供的PictureBox
。这样,每次重绘控件时都会执行自定义绘图代码。
如果你不这样做,你绘制的任何东西都会在下次重绘控件时消失。在您的代码中,您在绘制椭圆后立即调用Graphics
,因此重新绘制的控件没有椭圆...