Live Chat Icon For mobile
Live Chat Icon

WinForms FAQ - Layout

Find answers for the most frequently asked questions
Expand All Collapse All

Shawn Burke suggested this solution in a response on the microsoft.public.dotnet.framework.windowsforms newsgroup. The idea is to do the painting on Idle. This means you simple invalidate when being sized and then do your full paint when the size completes. Here is the code that you would add to your form.

	bool idleHooked = false;
	protected override void OnResize(EventArgs e) 
	{
		if (!idleHooked) 
		{
			Application.Idle += new EventHandler(OnIdle);
		}
	}

	private void OnIdle(object s, EventArgs e) 
	{
		Invalidate();
		PerformLayout();
		if (idleHooked) 
		{
			Application.Idle -= new EventHandler(OnIdle);
		}
	}
Permalink

Share with

Couldn't find the FAQs you're looking for?

Please submit your question and answer.