Bonjour à tous
je voudrais pouvoir déplacer une figure à l'aide de la souris sans effacer les autres figures dans un panel.
j'ai essayé l'évènement "Paint" du panel pour redéssiner les autres figures mais celui ci réagi à chaque mouvement de la souris pour chaque déplacement d'un pixel à l'autre et donc le scintillement est vraiment visible.
dans le cas d'un grand nombre de figures sur l'écran je crois qu'il faut copier l'image et puis la redéssine
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 class GrphPannel :System.Windows.Forms.Panel { //je mémorise mes lignes dans : lines public List<GRcontrol.Line> lines = new List<GRcontrol.Line>(); public Point start, end; public bool draw = false; protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics g = e.Graphics; foreach (GRcontrol.Line line in this.lines)// redessiner les lignes { g.DrawLine(Pens.Blue, line.Start, line.End); } if (this.draw)//si je dessine une nouvelle ligne c'est en rouge { g.DrawLine(Pens.Red, this.start, this.end); } //c'est trops long.....je ne doit pas redéssiner sauf si je découvre une partie de mes dessins } }
C# permet l'utilisation des pointeurs (pour plus de rapidité) comment faut t'il faire une chose comme : GETIMAGE.....PUTIMAGE ??
Partager