使用CreateGraphics()在C#中绘制表单

使用CreateGraphics()在C#中绘制表单,c#,drawing,system.drawing,C#,Drawing,System.drawing,我试图在C#Form上绘图,但在阅读了有关图形类和绘图/填充方法的文档后,它仍然不适合我 这是代码: using System.Drawing; using System.Windows.Forms; namespace Drawing_Example { public partial class Form1 : Form { #region Constructors public Form1() { I

我试图在C#Form上绘图,但在阅读了有关图形类和绘图/填充方法的文档后,它仍然不适合我

这是代码:

using System.Drawing;
using System.Windows.Forms;

namespace Drawing_Example
{
    public partial class Form1 : Form
    {
        #region Constructors

        public Form1()
        {
            InitializeComponent();

            Pen pen = new Pen(Color.Black, 3f);
            Graphics surface = CreateGraphics();
            surface.DrawEllipse(pen, new Rectangle(0, 0, 200, 300));

            pen.Dispose();
            surface.Dispose();
        }

        #endregion Constructors
    }
}

当我按下开始键时,会出现一个空表单,没有图形。你能告诉我我做错了什么吗?

你不能在构造函数中绘制,因为
OnPaint()
方法在以后被框架调用时会覆盖它

相反,在那里画画

不要使用
CreateGraphics()
创建您自己的
图形
对象;相反,根据我链接的示例,使用通过
e.Graphics
传递到
OnPaint()


(另外,当您完成处理
e.Graphics
时,不要处理它-框架会为您管理它。)

您不能在构造函数中进行绘制,因为
OnPaint()
方法将在稍后框架调用时覆盖所有内容

相反,在那里画画

不要使用
CreateGraphics()
创建您自己的
图形
对象;相反,根据我链接的示例,使用通过
e.Graphics
传递到
OnPaint()


(另外,当您完成处理
e.Graphics
时,不要处理它-框架会为您管理它。)

效果非常好!谢谢你的帮助;)很好!谢谢你的帮助;)