这段代码里面的错误在哪里?

时间:2012-05-07 11:38:53

标签: c# .net winforms

下面的代码在Windows窗体中创建一个圆圈。 编译时此代码没有任何错误。但它没有绘制椭圆?!为什么?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Drawing;

namespace WindowsFormsApplication1
{
    public class Task1 : Form1
    {
        public void FillEllipseInt(PaintEventArgs e)
        {
            SolidBrush redBrush = new SolidBrush(Color.Red);
            int x = 100;
            int y = 100;
            int width = 200;
            int height = 100;
            e.Graphics.FillEllipse(redBrush, x, y, width, height);
        }

        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您已创建Form1的实例而非任务1

Application.Run(new Form1());

您还需要创建Task1的实例

Application.Run(new Task1())

答案 1 :(得分:1)

您需要附加表单的Paint事件,并通过该调用附加您的FillEllipseInt方法。此外,您需要将Application.Run(new Form1());更改为Application.Run(new Task1());,因为(至少在您显示的代码中)没有Form1类。这也是我认为Task1应该继承Form而不是Form1的原因。