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
Linda HamiltonOriginal
2025-01-02 13:17:38741Durchsuche

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

}

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>
<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);

}

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>
<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);
}

}

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!

Stellungnahme:
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