How to use the OnPaint event in C #?


i saw some similar questions on the site but none of them really helped me.

I have a function that draws a few lines on the form when a button is clicked that vary in shape depending on the values the user enters in some textboxes.

My problem is that when i minimize the form, the lines disappear and i understood that this can be resolved by using the OnPaint event, but i don't really understand how.

Can anyone give me a simple example of using a function to draw something at the push of a button using the OnPaint event?

Here you go, simpe MSDN tutorial on User-Drawn Controls

You must inherit Button class and override OnPaint method.

Code example:

protected override void OnPaint(PaintEventArgs pe)
   // Call the OnPaint method of the base class.

   // Declare and instantiate a new pen.
   System.Drawing.Pen myPen = new System.Drawing.Pen(Color.Aqua);

   // Draw an aqua rectangle in the rectangle represented by the control.
   pe.Graphics.DrawRectangle(myPen, new Rectangle(this.Location,


Add property to your class and like public Color MyFancyTextColor {get;set;} and use it in your OnPaint method. Alsow it will apear in control property editor of visual studio form designer.