2013-06-25 54 views
0

我试图在窗体启动时在窗体上绘制图形。我试过把图形组件放在窗体构造器中,但我似乎无法使它工作。这是我到目前为止。如何在窗体启动时将图形绘制到窗体上

public partial class Form3 : Form 
{ 
    public Form3() 
    { 
     System.Drawing.Graphics graphics = this.CreateGraphics(); 
     System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(100, 100, 200, 200); 
     graphics.DrawEllipse(System.Drawing.Pens.Black, rectangle); 
     graphics.DrawRectangle(System.Drawing.Pens.Red, rectangle); 
    } 

}

任何及所有的帮助将是真棒,

谢谢你们

+0

使用油漆时,它会呈现在启动 – terrybozzio

回答

1

一个解决方案是使用位图,例如

Bitmap b = new Bitmap(this.Width, this.Height); 
Graphics g = Graphics.FromImage(b); 
... // Draw 
this.BackgroundImage = b; 

否则,你需要处理Paint事件,在此您可以直接在每个表格无效时间绘制到图形上下文。例如

this.Paint += Form1_Paint; 

... 

private void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    Graphics g = e.Graphics; 
    System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(100, 100, 200, 200); 
    g.DrawEllipse(System.Drawing.Pens.Black, rectangle); 
    g.DrawRectangle(System.Drawing.Pens.Red, rectangle); 
} 
+0

我不能画它作为背景图片的人,我以前做过,而且只会更喜欢,如果我能直接绘制到窗体..有没有办法做到这一点 ? – amartin94

+0

我将如何去做与Paint事件? 你能举个例子吗? – amartin94

+0

@ amartin94更新 –

1
private void Form1_Paint(object sender, PaintEventArgs e) 
     { 
      System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(100, 100, 200, 200); 
      e.Graphics.DrawEllipse(System.Drawing.Pens.Black, rectangle); 
      e.Graphics.DrawRectangle(System.Drawing.Pens.Red, rectangle); 
     } 
相关问题