Mausposition mit C# abrufen
In diesem kurzen Programmiertutorial geht es darum, eine Mausposition in C#-Windows-Form-Anwendungen zu erhalten.
Windows Form-Anwendung
Eine Anwendung, die speziell für die Ausführung auf einem Computer erstellt wurde, ist die Windows Form-Anwendung. Es funktioniert nicht in einem Webbrowser, da es sich um eine Desktop-basierte Anwendung handelt.
Eine Windows Form-Anwendung kann zahlreiche Steuerelemente enthalten. Es kann aus miteinander verbundenen Bildschirmen bestehen, die verschiedene Steuerelemente wie Schaltflächen, Textfelder, Beschriftungen usw. enthalten.
Erhalten Sie die Mausposition auf dem Bildschirm mit C#
Manchmal, in Szenarien, in denen Interaktivität die höchste Priorität hat, müssen wir oft die aktuelle Position des Mauszeigers abrufen. Unser Bildschirm wird in x- und y-Koordinaten gemessen, sodass wir die Mausposition erhalten können, indem wir die x-Koordinate und die y-Koordinate der Mauszeigerposition erhalten.
In C# können wir die Klasse Cursor
verwenden, um die Position des Mauszeigers zu erhalten. Dadurch wird die aktuelle Position des Mauszeigers im Vergleich zum gesamten Bildschirm zurückgegeben.
Wenn wir die für dieses aktuelle Fenster spezifische Position benötigen, können wir die Funktion ScreenToClient()
aufrufen. Diese Funktion übernimmt ein Point
-Objekt, das die x- und y-Koordinaten enthält, und gibt ein Point
-Objekt in Bezug auf den aktuellen Fensterbildschirm zurück.
Erstellen Sie zunächst eine neue Windows Form-Anwendung in Visual Studio.
In dieser Anwendung wird standardmäßig Form1.cs
erstellt. Erstellen Sie in dieser Datei zwei Textfelder wie folgt:
In der entsprechenden cs
-Datei, also Form1.cs
, können wir den Code zum Abrufen der Mausposition wie folgt schreiben:
Point p = PointToClient(Cursor.Position);
textBox1.Text = p.X.ToString();
textBox2.Text = p.Y.ToString();
Diese Funktion setzt den Wert basierend auf der Zeigerposition, wenn die Funktion aufgerufen wird. Wenn wir später den Mauszeiger bewegen, ändert er seinen Wert nicht.
Dazu können wir diesen Code in einen onMouseMove
-Event-Handler schreiben.
protected override void OnMouseMove(MouseEventArgs e) {
Point p = PointToClient(Cursor.Position);
textBox1.Text = p.X.ToString();
textBox2.Text = p.Y.ToString();
}
Der Effekt wird sein, dass sich der Wert (entsprechend) ändert, wenn wir den Zeiger nach dem Ausführen der App haben.
Lassen Sie uns zwei Instanzen des Ausgabebildschirms anhängen:
Sie können auf beiden Ausgabebildschirmen sehen, dass sich der Positionswert ändert, während Sie den Cursor bewegen. Dieser Positionswert bezieht sich auf den aktuellen Bildschirm.
Auf diese Weise können wir die aktuelle Mausposition in einem C# .NET-Code abrufen und für weitere Programmieraufgaben verwenden.