Solved

Borderless form flickers to much after resizing.

Posted on 2011-09-24
7
458 Views
Last Modified: 2013-12-17
Dear Experts,

I have made a borderless form with a borderline painted.
And the user is able to resize the form.
But when the form gets resized it flickers to much!

What can I do about this?

Who knows the answer and is willing to help me?

Greetings,

Peter Kiers
private void StickyNotes_Paint(object sender, PaintEventArgs e)
         {
            using (Pen pen = new Pen(Brushes.Silver, 2))
            {
                e.Graphics.DrawRectangle(pen, this.ClientRectangle);
            }
         }

      Private void StickyNotes_Resize(object sender, EventArgs e)
{
this.Invalidate();
}

Open in new window

0
Comment
Question by:peterkiers
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 36593087
I thought it might surface as a problem.

There is a ResizeEnd event - you could put the invalidate in there (instead of OnResize) but check it first - it looks odd.

If it is not suitable you would need to store the original rectangle coordinates you draw then erase them (draw in pen with sam colour as the background) before drawing the new rectangle in the OnPaint event.


(Maybe you should consider just having a border on the form instead of borderless - stops you inventing the wheel again)
0
 
LVL 1

Author Comment

by:peterkiers
ID: 36593112
ResizeEnd had no effect.

"If it is not suitable you would need to store the original rectangle coordinates you draw then erase them (draw in pen with sam colour as the background) before drawing the new rectangle in the OnPaint event."

Can you PLEASE tell me how?
P.

0
 
LVL 1

Author Comment

by:peterkiers
ID: 36593115
Oh ye,forgot to mention

I have just a form that i have give a certain color
and a borderline painted.

P.
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 250 total points
ID: 36593428
You are recreating and disposing of the Pen on each pass into Paint.

Define the Pen as a form level variable.

Then, I haven't work in those things for a long time and I do not have time to check, so I could be wrong, but I do not think you have to Invalidate the form. It is done automatically while you are resizing. If you do it, it gets done twice.

And finally, a personal remark. I do not thing that it is a good idea to have a resizable form with such a thin border. Any user of Windows is used to the look of a resizable form. It has a tick border that is in more than one color, either some kind of a gradient in the newer versions of Windows, or thin black lines with grey inside in the order ones.
0
 
LVL 85

Assisted Solution

by:Mike Tomlinson
Mike Tomlinson earned 250 total points
ID: 36594455
Have you tried enabling double buffering?...
0
 
LVL 40
ID: 36595270
Double buffering saves a copy of the bitmap. It is thus useful when there is something on the form. As I understand, the form is empty right now.
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 36595620
Try Invalidate(false); instead of just Invalidate();  Maybe that will help (it shouldn't force child controls to redraw).
0

Featured Post

MIM Survival Guide for Service Desk Managers

Major incidents can send mastered service desk processes into disorder. Systems and tools produce the data needed to resolve these incidents, but your challenge is getting that information to the right people fast. Check out the Survival Guide and begin bringing order to chaos.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question