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

时间:2017-03-04 09:28:30

标签: c# drawing system.drawing

我正在尝试使用C#Form工作,但在阅读有关Graphics类和Draw / Fill方法的文档后,它仍然不适用于我。

这是代码:

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
    }
}

当我按下“开始”时,出现一个空白表格,没有图纸。你能告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

您无法在构造函数中进行绘制,因为OnPaint()方法将在以后由框架调用时覆盖它。

相反,override the OnPaint() method并在那里进行绘图。

请勿使用Graphics创建自己的CreateGraphics()对象;相反,根据我链接的示例,使用通过OnPaint()传递给e.Graphics的那个。

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