2009-03-13 7 views
1

J'ai une forme simple, comme les suivantes:Pourquoi mon formulaire Windows n'est-il pas redessiné lorsque la fenêtre est redimensionnée?

using System; 
using System.Drawing; 
using System.Windows.Forms; 

namespace PaintTest 
{ 
    class PaintTest : Form 
    { 
     int _counter = 0; 

     [STAThread] 
     static void Main() 
     { 
     Application.Run(new PaintTest()); 
     } 

     protected override void OnPaint(PaintEventArgs e) 
     { 
     e.Graphics.DrawString(_counter.ToString(), new Font(FontFamily.GenericSerif, 10.0f), Brushes.Blue, 10.0f, 10.0f); 
     _counter++; 
     } 
    } 
} 

Lorsque la fenêtre est redimensionnée, le compteur ne semble pas mettre à jour à l'écran, même si OnPaint() devient appelé et le compteur incrémentée. Comment faire pour que le formulaire se repeindre comme la fenêtre est redimensionnée?

Répondre

2

Ajoutez les éléments suivants à votre classe, par ex. dans son constructeur:

SetStyle(ControlStyles.ResizeRedraw, true);

+0

Si la forme a un appel InitializeComponent(), placeriez-vous ce style avant ou après? ou n'est-ce pas important? – Svish

+0

qui était btw, une réponse rapide à votre propre question ... – Svish

+0

Svish, je viens de le tester et ce n'est pas grave. Re: la réponse rapide - je l'avais juste travaillé après une matinée frustrante et je voulais partager l'amour! :-) –

Questions connexes