Heim > Backend-Entwicklung > C++ > Wie zeichne ich Formen in C# WinForms mithilfe von Mauskoordinaten und dem Paint-Ereignis?

Wie zeichne ich Formen in C# WinForms mithilfe von Mauskoordinaten und dem Paint-Ereignis?

Linda Hamilton
Freigeben: 2025-01-02 13:17:38
Original
765 Leute haben es durchsucht

How to Draw Shapes in C# WinForms Using Mouse Coordinates and the Paint Event?

Verwenden des Paint-Ereignisses zum Zeichnen von Formen basierend auf Mauskoordinaten

Beim Erstellen interaktiver grafischer Anwendungen ist es wichtig, Formen zeichnen zu können basierend auf Benutzereingaben. In C# WinForms stellt das Paint-Ereignis einen Mechanismus zum Zeichnen von Inhalten auf der Anwendungsoberfläche bereit.

Mauskoordinaten integrieren

Um Mauskoordinaten in den Zeichenprozess einzubeziehen, wird der Form1_MouseMove Ereignis wird normalerweise verwendet. Innerhalb dieses Ereignisses können die X- und Y-Koordinaten aus dem MouseEventArgs-Objekt extrahiert werden. Diese Koordinaten stellen die aktuelle Position des Mauszeigers im Fenster der Anwendung dar.

DrawRect() mit mehreren Argumenten aufrufen

Ihr Codebeispiel verfügt über eine DrawRect()-Methode, die akzeptiert mehrere Argumente, einschließlich der Mauskoordinaten und eines PaintEventArgs-Objekts. Um diese Methode innerhalb des Form1_MouseMove-Ereignisses aufzurufen, können Sie Ihren Code wie folgt ändern:

<br>private void Form1_MouseMove(object sender, MouseEventArgs e)<br>{</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">int x = e.X; 
int y = e.Y;
DrawRect(e.Graphics, x, y); // Use the Graphics object provided by PaintEventArgs
Nach dem Login kopieren

}

Paint Event und DrawRect()

Innerhalb der Form1_Paint-Ereignishandler, das Graphics-Objekt wird vom PaintEventArgs-Objekt bereitgestellt. Dieses Grafikobjekt wird verwendet, um die Form auf die Oberfläche der Anwendung zu zeichnen.

In Ihrem Fall kann die DrawRect()-Methode das bereitgestellte Grafikobjekt verwenden, um das Rechteck an den angegebenen Koordinaten zu zeichnen:

<br>public void DrawRect(Graphics g, int x, int y)<br>{</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Pen pen = new Pen(Color.Azure, 4);
Rectangle rect = new Rectangle(x, y, rex, rey);
g.DrawRectangle(pen, rect);
Nach dem Login kopieren

}

Vollständiges Beispiel

Zusammenfügen dieser Komponenten, die So würde der vollständige Code für Ihre Anwendung aussehen dies:

<br>using System;<br>using System.Drawing;<br>using System.Windows.Forms;</p>
<p>public partial class Form1 : Form<br>{</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">private 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 g, int x, int y)
{
    Pen pen = new Pen(Color.Azure, 4);
    Rectangle rect = new Rectangle(x, y, rex, rey);
    g.DrawRectangle(pen, rect);
}
Nach dem Login kopieren

}

Durch die Verwendung des Paint-Ereignisses und der DrawRect()-Methode können Sie Formen effektiv auf die Oberfläche der Anwendung zeichnen basierend auf den Mauskoordinaten des Benutzers.

Das obige ist der detaillierte Inhalt vonWie zeichne ich Formen in C# WinForms mithilfe von Mauskoordinaten und dem Paint-Ereignis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Vorheriger Artikel:Wie sortiere ich Zeichenfolgen alphabetisch und numerisch mithilfe eines benutzerdefinierten Vergleichers in C#? Nächster Artikel:Wie kann verhindert werden, dass Entity Framework beim Speichern einer übergeordneten Entität untergeordnete Entitäten speichert?
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
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage