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
399 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!

source:php.cn
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