C# 用C语言重画代码#

C# 用C语言重画代码#,c#,drawing,C#,Drawing,我正在创建一个绘图程序,该程序假定从用户处获取参数 (半径、高度、宽度等) 我创建了一个具有一个参数(半径)的类 那么我叫它: private void button1_Click(object sender, EventArgs e) { faceoutline(int.Parse(textBox1.Text)); pictureBox1.Invalidate(); } ……什么也没发生 我把按钮代码复制到计时器上,但它一直在犹豫 我做错了什么

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

那么我叫它:

private void button1_Click(object sender, EventArgs e)
    {
        faceoutline(int.Parse(textBox1.Text));
        pictureBox1.Invalidate();
    }
……什么也没发生 我把按钮代码复制到计时器上,但它一直在犹豫
我做错了什么

应将绘图代码放置在
PictureBox
绘制事件处理程序中,并使用事件参数中提供的
图形。这样,每次重画控件时都将执行自定义图形代码


如果不这样做,下次重新绘制控件时,所绘制的任何内容都将消失。在代码中,在绘制椭圆后立即调用
Invalidate
,因此控件将在没有椭圆的情况下重新绘制…

1。渲染代码应该位于控件重新绘制自身时可以调用它的位置,就像在控件的OnPaint重写中一样。2.检查你的钢笔的颜色和厚度。3.0,0坐标将在控件的左上角渲染椭圆,至少偏移半径。thx但我使用0,0坐标只是为了试验代码它工作得很好谢谢:)
private void pictureBox1_Paint(object sender,PaintEventArgs e){int r=int.Parse(textBox1.Text);e.Graphics.drawerlipse(myPen,sp.X,sp.Y,r,r);}
private void button1_Click(object sender, EventArgs e)
    {
        faceoutline(int.Parse(textBox1.Text));
        pictureBox1.Invalidate();
    }