Obtener la posición del mouse usando C#

Naila Saad Siddiqui 15 febrero 2024
  1. Aplicación de formulario de Windows
  2. Obtenga la posición del mouse en la pantalla usando C#
Obtener la posición del mouse usando C#

Este breve tutorial de programación trata sobre cómo obtener una posición del mouse en las aplicaciones de Windows Forms de C#.

Aplicación de formulario de Windows

Una aplicación creada específicamente para ejecutarse en una computadora es la aplicación Windows Form. No funcionará en un navegador web, ya que es una aplicación de escritorio.

Puede haber numerosos controles en una aplicación de Windows Forms. Puede consistir en pantallas interconectadas que contienen diferentes controles como botones, cuadros de texto, etiquetas, etc.

Obtenga la posición del mouse en la pantalla usando C#

A veces, en escenarios donde la interactividad es la máxima prioridad, a menudo necesitamos obtener la posición actual del cursor del mouse. Nuestra pantalla se mide en coordenadas x e y, por lo que podemos obtener la posición del mouse obteniendo la coordenada x y la coordenada y de la posición del puntero del mouse.

En C#, podemos usar la clase Cursor para obtener la posición del puntero del mouse. Esto devolverá la posición actual del puntero del mouse en comparación con la pantalla completa.

Si necesitamos obtener la posición específica de esa ventana actual, podemos llamar a la función ScreenToClient(). Esta función toma un objeto Punto que contiene las coordenadas x e y y devuelve un objeto Punto con respecto a la pantalla de la ventana actual.

Primero, cree una nueva aplicación de Windows Forms en Visual Studio.

En esa aplicación se creará por defecto Form1.cs. En ese archivo, cree dos cuadros de texto como este:

C# Obtener la posición del mouse - Paso 1

En el archivo cs correspondiente, es decir, Form1.cs, podemos escribir el código para obtener la posición del mouse de esta manera:

Point p = PointToClient(Cursor.Position);
textBox1.Text = p.X.ToString();
textBox2.Text = p.Y.ToString();

Esta función establecerá la base del valor en la posición del puntero cuando se llame a la función. Posteriormente, si movemos el puntero del ratón, no cambiará su valor.

Para hacerlo, podemos escribir este código en un controlador de eventos onMouseMove.

protected override void OnMouseMove(MouseEventArgs e) {
  Point p = PointToClient(Cursor.Position);
  textBox1.Text = p.X.ToString();
  textBox2.Text = p.Y.ToString();
}

El efecto será que el valor (en consecuencia) cambiará cada vez que tengamos el puntero después de ejecutar la aplicación.

Adjuntemos dos instancias de la pantalla de salida:

C# Obtener la posición del mouse - Salida 1

C# Obtener la posición del mouse - Salida 2

Puede ver en ambas pantallas de salida que el valor de posición cambia mientras mueve el cursor. Este valor de posición es con respecto a la pantalla actual.

De esta manera, podemos obtener la posición actual del mouse en un código C# .NET y usarlo para otras tareas de programación.

Artículo relacionado - Csharp Mouse