Bonjour
Après avoir parcouru nombre d'exemples, d'explications ...
J'ai réussi à créer un cadre (rectangle non plein avec bordures visibles) arrondi au chargement de ma fenêtre :
this = Form1.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 private void dessinerCadre() { GraphicsPath gp = new GraphicsPath(); Pen p = new Pen(Color.FromArgb(102, 147, 251), 1); Rectangle rt = new Rectangle(10, 70, this.ClientRectangle.Width - 20, 88); int radius = 15; gp.AddLine(rt.X + radius, rt.Y, rt.X + rt.Width - (radius * 2), rt.Y); gp.AddArc(rt.X + rt.Width - (radius * 2), rt.Y, radius * 2, radius * 2, 270, 90); gp.AddLine(rt.X + rt.Width, rt.Y + radius, rt.X + rt.Width, rt.Y + rt.Height - (radius * 2)); gp.AddArc(rt.X + rt.Width - (radius * 2), rt.Y + rt.Height - (radius * 2), radius * 2, radius * 2, 0, 90); gp.AddLine(rt.X + rt.Width - (radius * 2), rt.Y + rt.Height, rt.X + radius, rt.Y + rt.Height); gp.AddArc(rt.X, rt.Y + rt.Height - (radius * 2), radius * 2, radius * 2, 90, 90); gp.AddLine(rt.X, rt.Y + rt.Height - (radius * 2), rt.X, rt.Y + radius); gp.AddArc(rt.X, rt.Y, radius * 2, radius * 2, 180, 90); gp.CloseFigure(); System.Drawing.Graphics gr; gr = this.CreateGraphics(); gr.DrawPath(p, gp); }
Le problème est que dès que j'agrandis ma fenêtre, réduis etc etc ... le cadre se redessine sur le précédent et se répète sans disparaître (voir image jointe)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void Form1_Paint(object sender, PaintEventArgs e) { dessinerCadre(); }
J'ai lu qu'il fallait utiliser le doublebuffer, mais même avec les explications, ou les exemples, je me retrouve avec une forme avec des gros traits rouges qui barrent toute ma form.
Quelqu'un peut il m'aider à paramétrer le doublebuffer afin d'éviter le scintillement ?
Ou supprimer le 1er cadre dessiné avant de dessiner le nouveau ?
je vous en remercie
NB : je sais qu'il y a un outil RectangleShape dans le visualBasic PowerPacks, mais je ne préfère pas l'utiliser et rester un maximum avec les outils du Framework 4 (que j'utilise)
Partager