salut,
je voudrais savoir comment je peux faire un tooltip dans une picturebox qui contient deux ellipses
Merci d'avanceCode:
1
2 g.DrawEllipse(new Pen(Color.Red, 2.0f), 50, 68, 30, 30); g.DrawEllipse(new Pen(Color.Red, 2.0f), 90, 78, 10, 10);
Version imprimable
salut,
je voudrais savoir comment je peux faire un tooltip dans une picturebox qui contient deux ellipses
Merci d'avanceCode:
1
2 g.DrawEllipse(new Pen(Color.Red, 2.0f), 50, 68, 30, 30); g.DrawEllipse(new Pen(Color.Red, 2.0f), 90, 78, 10, 10);
salut
si tu veux faire un tooltip spécifique quand tu passes sur tes cercles, tu es obligé de définir 1 region par cercle, et ensuite, dans le mousemove de la picturebox, il faut que tu regardes si la position du pointeur (de la souris en général) se trouve à l'intérieur de ces deux régions (methode : isVisible() de la région)...
Si c'est le cas, tu peux ensuite faire le show() du tooltip :)
voilà
bonsoir,
merci bien pour votre reponse c ca exactement que j'ai besoin mais mon probleme que j'ai pa su qu'est c qu'il faut faire exactement dans le mousemove ainsi le tooltip.show() ou je dois l'appler
Merci d'avance pour l'aideCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 private void Form1_MouseMove(object sender, MouseEventArgs e) { Region reg = new Region(gp); if (reg.IsVisible(new Point(e.X, e.Y))) // else // } public Form1() { InitializeComponent(); this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove); g = this.CreateGraphics(); gp = new GraphicsPath(); }
les regions ne doivent pas etre locale à ton bloc fonctionnel, mais doivent etre une liste, ou tableau, ou ce que tu veux, en variable membre de ta classe !
Pour les créer, tu peux utiliser un GraphicsPath , ce qui est une bonne idée (enfin, si c pour faire un rectangle, ya un constructeur de GraphicsPath qui prend en argument un rectangle.... Une fois que tes regions sont définis, dans le mouseMove, tu feras un "bete",
if Region[x].IsVisible(e.Location) == true
Then ==> Tu es dans la zone définie par la region[x], donc, tu as ton info.
voilà
bonjour,
merci bien pour votre réponse mais malheureusement je suis bloqué au niveau de la définition de région:(
voila mon code et svp aider moi
Merci d'avanceCode:
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
41
42
43
44
45
46
47
48
49
50
51 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Collections; using System.Drawing.Drawing2D; namespace testtoolltipp { public partial class Form1 : Form { GraphicsPath gp; string mes = "Move to the big I!"; Region[] reg = new Region[2]; ToolTip tool = new ToolTip(); public Form1() { InitializeComponent(); this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove); Bitmap img = new Bitmap(500, 500); System.Drawing.Graphics g = Graphics.FromImage(img); pictureBox1.Image = img; int[] tab ={ 50, 90 }; int[] tab1 ={ 68, 78 }; int[] tab2 ={ 30, 10 }; int[] tab3 ={ 30, 10 }; for (int i = 0; i < 2; i++) { g.DrawEllipse(new Pen(Color.Red, 2.0f), tab[i], tab1[i], tab2[i], tab3[i]); } //////////remplisage de tableau region me manque gp = new GraphicsPath(); } private void Form1_MouseMove(object sender, MouseEventArgs e) { for (int j = 0; j < 2; j++) { if (reg[j].IsVisible(e.Location) == true) tool.Show("tex", this); } } } }
Voici un code propre qui te montre exactement ce que tu veux et surtout, comment le faire vraiment "proprement" :)
merci bcp :D
et tu vois, c'était vraiment "pas" compliqué (enfin, moi, ca m'a pris 8 minutes pour le faire :) )
Par contre, si la question est résolue, pense à mettre résolu (en bas de la page)