2010-10-15 4 views
2

Comment dessiner un cercle sur une forme couvrant toute la zone de travail?Comment dessiner un cercle sur une forme qui couvre toute la zone de travail?

J'ai essayé le code suivant. Mais quand je redimensionne le formulaire, le cercle est déformé. alt text

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Paint(object sender, PaintEventArgs e) 
     { 
      Graphics g = e.Graphics; 

      g.SmoothingMode = SmoothingMode.AntiAlias; 

      Pen redPen = new Pen(Color.Red, 3); 
      Rectangle rect = new Rectangle(0,0, this.ClientSize.Width, this.ClientSize.Height); 

      g.DrawEllipse(redPen, rect); 

     } 
    } 

Répondre

4

Vous devez également vous connecter à l'événement ClientSizeChanged pour déclencher un redraw. Ce qui se passe actuellement, c'est que Windows suppose que seule la petite partie qui est devenue visible doit être redessinée, et les clips tout le reste. Vous devez donc invalider le formulaire complet (Invalidate()) lorsqu'un redimensionnement a lieu.

Si le cercle commence à clignoter lors du redimensionnement, activez la double mise en mémoire tampon du formulaire.

0

Essayez de définir la propriété DoubleBuffered du formulaire à true.

Questions connexes