2012-07-20 111 views
3

我是新的C#和我想繪製一個顏色填充橢圓,我找到了一些代碼,但我無法弄清楚如何做到這一點。如何通過GDI繪製橢圓C#?

我試着用這個代碼:

Graphics g = this.CreateGraphics(); 
Pen pen = new Pen(Color.Aquamarine, 2); 
g.DrawEllipse(pen, 10, 10, 100, 20); 

但方法不存在。

Colud你幫我嗎?

在此先感謝。

+2

哪種方法不存在? DrawEllipse? – 2012-07-20 06:55:33

+0

是的。我不明白爲什麼? – lilymz 2012-07-20 06:57:38

+1

我也沒有,因爲這種方法存在:http://msdn.microsoft.com/en-us/library/wt06kxfd.aspx你收到什麼錯誤信息? – 2012-07-20 07:00:02

回答

2

您應該在窗體Paint Event中進行圖形繪製,否則一旦屏幕更新,您將失去繪圖。這是一個快速和骯髒的例子,如何這樣做。

public Form1() 
{ 
    InitializeComponent(); 
    this.Paint += new PaintEventHandler(Form1_Paint); 
} 

void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    Pen pen = new Pen(Color.Aquamarine,2); 
    SolidBrush brush = new SolidBrush(Color.Aquamarine); 

    e.Graphics.DrawEllipse(pen, 10, 10, 100, 20); 
    e.Graphics.FillEllipse(brush, 10, 50, 100, 20); 
} 
+1

這實際上並不涉及'DrawEllipse'方法據稱沒有被發現。 – 2012-07-20 07:39:13

+1

@ O.R.Mapper是的,它確實是因爲它是PaintEventHandler的一部分,我不確定他爲什麼不能按照他嘗試的方式訪問它,但我知道他可以通過這種方式訪問​​它。如果他不使用PaintEvent繪製圖像,他將保留圖像被保留的問題。 – 2012-07-20 07:44:02

+1

作爲「PaintEventHandler」的一部分,不會改變任何有關「DrawEllipse」可見性的內容 - 該方法應該可以在原始代碼中調用。顯然,問題中缺少一些信息;讓我們看看OP是否提供任何其他信息。 – 2012-07-20 08:26:27