Solved

Borderless form flickers to much after resizing.

Posted on 2011-09-24
7
454 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
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 
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

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
IO.FileSystemWatcher dies when used in Powershell 1 45
Definitions and default visual studio colors 5 58
Data is not showing from images 15 37
Connection String 16 43
The object model of .Net can be overwhelming at times – so overwhelming that quite trivial tasks often take hours of research. In this case, the task at hand was to populate the datagrid from SQL Server database in Visual Studio 2008 Windows applica…
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
Internet Business Fax to Email Made Easy - With  eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, f…

912 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

Need Help in Real-Time?

Connect with top rated Experts

26 Experts available now in Live!

Get 1:1 Help Now