visual posicion net coordenadas c# mouse-position

posicion - Obteniendo la posición del mouse en c#



mouse c# (8)

¿Cómo obtengo la posición del mouse? Lo quiero en términos de posición de pantalla.

Comienzo el programa que quiero establecer en la posición actual del mouse.

Location.X = ?? Location.Y = ??

Editar: esto debe suceder antes de que se cree el formulario.



Inicializa el cursor actual. Úselo para obtener la posición de X e Y

this.Cursor = new Cursor(Cursor.Current.Handle); int posX = Cursor.Position.X; int posY = Cursor.Position.Y;


Para responder a tu ejemplo específico:

// your example Location.X = Cursor.Position.X; Location.Y = Cursor.Position.Y; // sample code Console.WriteLine("x: " + Cursor.Position.X + " y: " + Cursor.Position.Y);

No olvides agregar using System.Windows.Forms; , y agregando la referencia a la misma (haga clic derecho en referencias> agregar referencia> pestaña .NET> Systems.Windows.Forms> ok)


Para ver la posición, mira el evento OnMouseMove. MouseEventArgs te dará las posiciones x an y ...

protected override void OnMouseMove(MouseEventArgs mouseEv)

Para establecer la posición del mouse, use la propiedad Cursor.Position.

System.Windows.Forms.Cursor.Position


Si no desea hacer referencia a Formularios, puede usar interoperabilidad para obtener la posición del cursor:

/// <summary> /// Struct representing a point. /// </summary> [StructLayout(LayoutKind.Sequential)] public struct POINT { public int X; public int Y; public static implicit operator Point(POINT point) { return new Point(point.X, point.Y); } } /// <summary> /// Retrieves the cursor''s position, in screen coordinates. /// </summary> /// <see>See MSDN documentation for further information.</see> [DllImport("user32.dll")] public static extern bool GetCursorPos(out POINT lpPoint); public static Point GetCursorPosition() { POINT lpPoint; GetCursorPos(out lpPoint); //bool success = User32.GetCursorPos(out lpPoint); // if (!success) return lpPoint; }


System.Windows.Forms.Cursor.Position obtendrá la posición actual de la pantalla del mouse (si está en un Control , la propiedad MousePosition también obtendrá el mismo valor).

Para establecer la posición del mouse, deberá usar Cursor.Position y darle un nuevo Point :

Cursor.Position = new Point(x, y);

Puede hacer esto en su método Main antes de crear su formulario.


internal static class CursorPosition { [StructLayout(LayoutKind.Sequential)] public struct PointInter { public int X; public int Y; public static explicit operator Point(PointInter point) => new Point(point.X, point.Y); } [DllImport("user32.dll")] public static extern bool GetCursorPos(out PointInter lpPoint); // For your convenience public static Point GetCursorPosition() { PointInter lpPoint; GetCursorPos(out lpPoint); return (Point) lpPoint; }

}