Home > DeveloperSection > Forums > C# this.Invalidate() is blocking parent form to access
Tanuj Kumar

Total Post:134

Points:940
Posted on    September-24-2013 4:39 AM

 C#
Ratings:


 1 Reply(s)
 1027  View(s)
Rate this:

I have a button on MainForm whose button click event creates a ChildForm and shows. While ChildForm is shown, i can invoke any menu commands (each menu command is implemented to show a message box) which are defined on MainForm without any issues.

BUT, on other hand, I kept all the code as is and override OnPaint method of ChildForm with this.Invalidate() as shown below

protected override void OnPaint(PaintEventArgs e)

    {

        this.Invalidate();

        base.OnPaint(e);

    }

Can anyone put some light on what went wrong with overriding OnPaint method which executes this.Invalidate() line everytime and suggest how can I resolve this issue.



Pravesh Singh

Total Post:411

Points:2881
Posted on    September-24-2013 7:44 AM

Hi Tanuj,

You called Invalidate() which will fire OnPaint, OnPaint calls Invalidate() and again ... that's a loop of calling Invalidate() and OnPaint -> Your UI is frozen.

The solution is you have to make it more clear on what you want and your purpose of overriding OnPaint here.


Don't want to miss updates? Please click the below button!

Follow MindStick