سلام.
سوال اول:
می خواستم بدونم که OnPaint وقتی Override می شود، دقیقا چه زمانی اجرا می شود؟ به عبارت ساده تر کد زیر در برنامه کی اجرا می شود؟


protected
overridevoid OnPaint(
PaintEventArgs paintEvent )
{
// get graphics object
Graphics g = paintEvent.Graphics;
SolidBrush brush = newSolidBrush( Color.Blue );
Pen pen = newPen( Color.AliceBlue );
// create filled rectangle
g.FillRectangle( brush, 90, 30, 150, 90 );
// draw lines to connect rectangles
g.DrawLine( pen, 90, 30, 110, 40 );
g.DrawLine( pen, 90, 120, 110, 130 );
g.DrawLine( pen, 240, 30, 260, 40 );
g.DrawLine( pen, 240, 120, 260, 130 );
// draw top rectangle
g.DrawRectangle( pen, 110, 40, 150, 90 );
// set brush to red
brush.Color = Color.Red;
// draw base Ellipse
g.FillEllipse( brush, 280, 75, 100, 50 );
// draw connecting lines
g.DrawLine( pen, 380, 55, 380, 100 );
g.DrawLine( pen, 280, 55, 280, 100 );
// draw Ellipse outline
g.DrawEllipse( pen, 280, 30, 100, 50 );
}
// end method OnPaint


---------------------------------------------------------------------------

سوال دوم:
چه زمانی رویداد Paint فرم اجرا می شود؟ یعنی باید چه اتفاقی بیفتد؟

پیشاپیش از پاسختون سپاسگزارم.