Maison > développement back-end > C++ > Comment puis-je utiliser l'événement Paint pour dessiner des formes en fonction de la position de la souris en C# ?

Comment puis-je utiliser l'événement Paint pour dessiner des formes en fonction de la position de la souris en C# ?

Susan Sarandon
Libérer: 2025-01-05 10:27:39
original
457 Les gens l'ont consulté

How Can I Use the Paint Event to Draw Shapes Based on Mouse Position in C#?

Comment exploiter l'événement Paint pour restituer des formes en fonction des coordonnées de la souris ?

Prélude

Pour dessiner des formes sur la surface d'un contrôle, vous comptez sur son événement Paint ou remplacer la méthode OnPaint d’un contrôle personnalisé/utilisateur. Évitez de stocker son objet Graphics, car il devient invalide lors de l'invalidation du contrôle. Utilisez l'objet Graphics fourni par l'objet PaintEventArgs pour dessiner.

Résolution du problème

Le code C# fourni tente de dessiner des rectangles en fonction des coordonnées de la souris, mais rencontre des problèmes en raison d'une méthode DrawRect() incorrecte. invocation. Pour remédier à cela, transmettez les arguments requis (e.Graphics, x, y) à la méthode DrawRect().

Une solution complète

Dans les scénarios de dessin complexes, envisagez de définir différentes méthodes pour gérer tâches de dessin spécialisées, en passant l'objet e.Graphics à ces méthodes pour les opérations de dessin.

Un exemple personnalisé

Le code suivant L'extrait présente un exemple de dessin de rectangles lorsque la souris bouge :

using System;
using System.Drawing;
using System.Windows.Forms;

public partial class Form1 : Form
{
    public void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        int x = e.X;
        int y = e.Y;
        DrawRect(e.Graphics, x, y);
    }

    private void Form1_Paint(object sender, PaintEventArgs e)
    {

    }

    public void DrawRect(Graphics gr, int rey, int rex)
    {
        Pen pen = new Pen(Color.Azure, 4);
        Rectangle rect = new Rectangle(0, 0, rex, rey);
        gr.DrawRectangle(pen, rect);
    }
}
Copier après la connexion

Autres améliorations

Pour des capacités de dessin supplémentaires :

  • Attribuez la couleur de bordure de la forme à un Field.
  • Utilisez une liste() pour stocker les rectangles détails.
  • Gérez les événements de la souris pour créer, modifier et supprimer des rectangles.
  • Dans l'événement Paint, parcourez les rectangles et dessinez-les à l'aide des graphiques fournis. objet.

Références

  • https://i.sstatic.net/jbVZK.gif

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal