在C#中重绘代码

时间:2014-05-03 00:37:20

标签: c# drawing

我正在创建一个绘图程序,假设从用户那里获取参数 (半径,高度,宽度,....等) 我创建了一个具有一个参数(半径)的类

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 我做错了什么?!

1 个答案:

答案 0 :(得分:2)

您应该将绘图代码放在Paint的{​​{1}}事件处理程序中,并使用事件args中提供的PictureBox。这样,每次重绘控件时都会执行自定义绘图代码。

如果你不这样做,你绘制的任何东西都会在下次重绘控件时消失。在您的代码中,您在绘制椭圆后立即调用Graphics,因此重新绘制的控件没有椭圆...