我不確定Paint表單生命週期是如何工作的,何時調用Form1_Paint
函數?如何控制何時被調用?何時調用C#繪圖/填充函數?他們怎樣才能從一個單獨的課程中調用?
我知道我可以調用使用C#繪圖庫,像這樣畫了一個圈:
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.FillEllipse(Brushes.Red, new Rectangle(1, 1, 1, 1));
}
如果我這樣定義的對象,因此:
class myCircleObject
{
int x, y, radius;
public myCircleObject(int x_val, int y_val, int r)
{
x = x_val;
y = y_val;
radius = r;
}
public void Draw()
{
System.Drawing.Rectangle r = new System.Drawing.Rectangle(x, y, radius, radius);
//Draw Circle here
}
}
,或者如果我不能做我怎樣才能調用Form1_Paint
函數,而不是在運行時立即運行。
目前還不清楚[什麼問題(http://meta.stackexchange.com/q/66377/147640 ) 你正擁有的。 'Paint'事件是表單生命週期的一部分,它必須在那裏處理,然後使用提供的'Graphics'對象,其他任何東西都沒有意義。如果你想在處理'Paint'事件時使用你的類,一個選擇就是將'PaintEventArgs e'傳遞給它的'Draw'方法。如果您只是想在某個地方繪製某個地方,而不考慮表單生命週期,請從您的類中創建一個Graphics對象。 – GSerg
爲你的函數添加一個參數:* public void Draw(Graphics thegraphics)*,然後* thegraphics.FillEllipse(Brushes.Red,r)* – Graffito
我不知道你想要着色哪個像素。或者你爲什麼不想使用Paint事件.. ?? – TaW