Paint Event Not Called During Form Resize

Many of us write common graphics code in the Form’s Paint event because the Paint Event handler provides access to the Graphics object, and also because this handler is fired whenever the form is redrawn (first shown and restored from its minimized state).

There’s just one problem: The Paint event fails when the form is resized?it’s not triggered in the case of a form resize.

There are two workarounds for this problem:

  • Use the handy Invalidate() method. This causes the paint message to be sent to the form, which calls the Paint handler.
  • Use control(Form)‘s ResizeRedraw propertyto redraw itself when the control is resized. Set it to true either in the constructor or the Main() method.

If only a particular portion of the control needs to be refreshed, it’s best to call it with a Rectangle parameter that specifies the portion of the control, otherwise it will hit the performance of the application.

Note: When you call the Invalidate() method without any parameters, the Paint event is called for the entire area.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: