2013-06-25 53 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); 
     } 
相關問題