Tout d'abord, je suis un vrai débutant à C# alors s'il vous plaît soyez doux. J'essaie d'avoir un cercle qui suit mon curseur. Je ne veux pas laisser de «traînées» derrière moi.Vous voulez un cercle dessiné pour suivre ma souris en C#
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
drawCircle(e.X, e.Y);
}
private void drawCircle(int x, int y)
{
Pen skyBluePen = new Pen(Brushes.DeepSkyBlue);
Graphics graphics = CreateGraphics();
graphics.DrawEllipse(
skyBluePen, x - 150, y - 150, 300, 300);
graphics.Dispose();
this.Invalidate();
}
Cela fonctionne bien, car il dessine et se centre sur la souris pour chaque déplacement de la souris. Cependant, le "this.Invalidate();" est faux. Il "dessèche" la forme après chaque mouvement, donc je ne peux que voir des aperçus de celui-ci. Cependant, ne pas inclure cela fait que chaque cercle dessiné reste à l'écran. Comment puis-je obtenir un cercle pour «suivre gracieusement» ma souris, sans être trop nerveux et sans conserver tous les cercles du passé?
Vous pouvez ajouter "this.DoubleBuffered = true;" dans le cadre de la ctor, et il pourrait aussi aider avec une partie du scintillement. –
Est-ce tout ce dont j'ai besoin? Je l'ai collé dedans et il ne fait réellement rien quand je cours en plus d'élever le formulaire/fenêtre ... – cksubs
Eh bien, vous devez relier les événements. J'ai laissé cette partie pour la brièveté. Vous pouvez les ajouter dans l'éditeur de propriétés ou les ajouter dans le ctor avec quelque chose comme ceci.Paint + = Form1_Paint; et this.MouseMove + = Form1_MouseMove; –