我不确定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