Heim >Backend-Entwicklung >C++ >Wie zeichne ich Formen in C# WinForms mithilfe von Mauskoordinaten und dem Paint-Ereignis?
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!