Solved

Borderless form flickers to much after resizing.

Posted on 2011-09-24
7
457 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
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
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

A basic question.. “What is the Garbage Collector?” The usual answer given back: “Garbage collector is a background thread run by the CLR for freeing up the memory space used by the objects which are no longer used by the program.” I wondered …
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

803 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