Heim > Backend-Entwicklung > C++ > Wie kann ich das Paint-Ereignis verwenden, um Formen basierend auf der Mausposition in C# zu zeichnen?

Wie kann ich das Paint-Ereignis verwenden, um Formen basierend auf der Mausposition in C# zu zeichnen?

Susan Sarandon
Freigeben: 2025-01-05 10:27:39
Original
434 Leute haben es durchsucht

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

Wie nutze ich das Paint-Ereignis, um Formen basierend auf Mauskoordinaten zu rendern?

Vorspiel

Um Formen auf der Oberfläche eines Steuerelements zu zeichnen, verlassen Sie sich auf sein Paint-Ereignis oder überschreiben Sie die OnPaint-Methode eines benutzerdefinierten/Benutzer-Steuerelements. Vermeiden Sie das Speichern des Grafikobjekts, da es bei der Ungültigmachung des Steuerelements ungültig wird. Verwenden Sie zum Zeichnen das vom PaintEventArgs-Objekt bereitgestellte Graphics-Objekt.

Behebung des Problems

Der bereitgestellte C#-Code versucht, Rechtecke basierend auf Mauskoordinaten zu zeichnen, weist jedoch aufgrund einer falschen DrawRect()-Methode Probleme auf Aufruf. Um dies zu beheben, übergeben Sie die erforderlichen Argumente (z. B. Graphics, x, y) an die DrawRect()-Methode.

Eine umfassende Lösung

In komplexen Zeichenszenarien sollten Sie erwägen, verschiedene zu verarbeitende Methoden zu definieren Spezielle Zeichenaufgaben, bei denen das e.Graphics-Objekt für Zeichenvorgänge an diese Methoden übergeben wird.

Ein Benutzerdefiniert Beispiel

Der folgende Codeausschnitt zeigt ein Beispiel für das Zeichnen von Rechtecken, während sich die Maus bewegt:

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);
    }
}
Nach dem Login kopieren

Weitere Verbesserungen

Für zusätzliche Zeichenfunktionen:

  • Weisen Sie die Rahmenfarbe der Form einem Feld zu.
  • Verwenden Sie a List() zum Speichern der Rechteckdetails.
  • Verarbeiten von Mausereignissen zum Erstellen, Ändern und Entfernen von Rechtecken.
  • Durchlaufen Sie im Paint-Ereignis die Rechtecke und zeichnen Sie sie mit die bereitgestellten Grafiken Objekt.

Referenzen

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

Das obige ist der detaillierte Inhalt vonWie kann ich das Paint-Ereignis verwenden, um Formen basierend auf der Mausposition in C# zu zeichnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage