salut,
j'aimerais faire un texte(label) qui suit mon curseur mais je ne sais pas comment faire (proprement).
salut,
j'aimerais faire un texte(label) qui suit mon curseur mais je ne sais pas comment faire (proprement).
Je me suis déjà fait avoir alors => De quel curseur parles tu ? Le curseur de la souris ou d'un texte ?
la souris
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.MouseMove += new System.Windows.Forms.MouseEventHandler(Form1_MouseMove);Ca te suffit ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { Point myPoint = System.Windows.Forms.Cursor.Position; myPoint.X -= (this.Location.X); myPoint.Y -= (this.Location.Y ); if (myPoint.X >= 0 && myPoint.Y >= 0 && myPoint.X <= Size.Width && myPoint.Y <= Size.Height) label1.Location = myPoint; }
bof j'ai deja fait ca mais c'est laid, ca clignote
Je vois pas trop comment faire sinon tu peux toujours faire un thread qui fait ça très souvent mais de toute façon ça clignotera !
Chez moi ça ne clignotte pas du tout
moi ca clignote pas vraiment, mais on voit le label s'effacer et se rédessiner!
moi ca clignote pas vraiment, mais on voit le label s'effacer et se rédessiner! puis j'ai essayer avec un thread c'est pareil!
c'est directement en rapport avec la puissance du PC et le fait (je suppose) que tu compile en "debug", tu devrais avoir moins de problème en "release" je dis bien "moins" :p
Euhh quand même je pense pas que ça fasse appel à énormément de calculs complexes ! M'enfin c'est vrai que ça doit ptet jouer.Envoyé par lakitrid
Débuggueur de Visual C++ .NET 2003, sors de là ! On t'a vu ! Parce que même en debug ou release, sous 2005, aucun problème.Envoyé par lakitrid
ah non tu m'as démasqué !!!Envoyé par DeusXL
Effectivement mon dernier dev serieux en C# était fait avec VS2003
Pas encore eu le temps de dev sur 2005, mais ca vient !
pour ce qui est de la puissance du PC ca peut jouer en fonction de ce qu'il y a en arriére plan, etc ... Mais là encore c'est encore que du vécu VS2003
Bon les amis voici l'astuce
Abandon tu Label faisons simple
Mon test se contente d'une Form vide avec un curseur qui traine son texte
Et voilà
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 using System; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Windows.Forms; public class Form1 : Form { public Form1() { //... this.InitializeComponent(); this.B = new SolidBrush(this.ForeColor); this.F = this.Font; } //... private const string texte = "Je te suis partout"; private SolidBrush B; private Font F; private float X; private float Y; private void Form1_MouseMove(object sender, MouseEventArgs e) { this.X = e.X; this.Y = e.Y; this.Invalidate(); } private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawString(texte, F, B, X, Y);} }
neguib tu triches Bien vu
Mais bon tu as raison, pour faire suivre un texte, ya plus simple qu'un label !
Au moins avec ta méthode, on est sûr que ça laggera pas
Par contre faut pas oublier les deux handlers dans InitializeComponent() :
PS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint); this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
Bout de code idiot de ma part... Il aurait suffit de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Point myPoint = System.Windows.Forms.Cursor.Position; myPoint.X -= (this.Location.X); myPoint.Y -= (this.Location.Y );
Code : Sélectionner tout - Visualiser dans une fenêtre à part Point myPoint = e.Location;
C'est vrai que je ne l'ai pas non plus utilisé car la méthode Graphics.DrawString exige un PointF et non Point, j'ai donc été au plus simpleEnvoyé par DeusXL
Bof, comme de toute façon MouseEventArgs.X et MouseEventArgs.Y sont deux entiers, je pense qu'il vaut mieux passer par un Point car PointF ne nous apporte rien (en fait je pense que c'est mieux juste car ça fait une variable de moins...) mais vraiment ça se vaut !Envoyé par neguib
Par contre DrawString est faite avec un PointF mais marche très bien avec un Point
j'ai utilisé cette méthode :
je change mon curseur de souris en un curseur perso^^
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager