绘图图形不适用于窗体加载事件

时间:2016-04-15 13:53:56

标签: c# draw

        private void DrawIt()
        {
            System.Drawing.Graphics graphics = this.CreateGraphics();
            System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(
              50, 50, 150, 150);

            graphics.DrawRectangle(System.Drawing.Pens.Red, rectangle);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            DrawIt();

        }


        private void button1_Click(object sender, EventArgs e)
        {
            DrawIt();

        }

将'DrawIt'方法放在按钮事件中它可以工作,但是在表单加载事件中它没有,为什么?

3 个答案:

答案 0 :(得分:0)

将Load事件更改为Paint。 如果要重绘表单,请使用this.Refresh();

当您使用Paint方法时:

private void mForm_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.FillEllipse(...);
}

答案 1 :(得分:0)

在绘制表单之前运行Load事件。因此,您绘制的任何内容都会被表格覆盖。

从Form加载后触发的事件中调用DrawIt方法。

答案 2 :(得分:0)

您需要一个事件来触发DrawIt()。您可以使用面板或其他。然后编写一个OnClik事件。单击后将开始绘制图形。