Obtendo a posição do mouse em c #

Como obtenho a posição do mouse? Eu quero isso em termos de posição na canvas.

Eu começo meu programa que quero definir para a posição atual do mouse.

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

Editar: isso deve acontecer antes que o formulário seja criado.

Você deve usar System.Windows.Forms.Cursor.Position : “Um ponto que representa a posição do cursor nas coordenadas da canvas.”

Se você não quiser referenciar Formulários, poderá usar a interoperabilidade para obter a posição do cursor:

 ///  /// Struct representing a point. ///  [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); } } ///  /// Retrieves the cursor's position, in screen coordinates. ///  /// See MSDN documentation for further information. [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; } 

Cursor.Position obterá a detecção atual de canvas do mouse (se você estiver em um Controle , a propriedade MousePosition também obterá o mesmo valor).

Para definir a posição do mouse, você terá que usar Cursor.Position e dar um novo ponto :

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

Você pode fazer isso no seu método Main antes de criar seu formulário.

Para responder ao seu exemplo 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); 

Não esqueça de adicionar using System.Windows.Forms; e adicionando a referência a ele (clique com o botão direito em referências> adicionar referência> guia .NET> Systems.Windows.Forms> ok)

 System.Windows.Forms.Control.MousePosition 

Obtém a posição do cursor do mouse nas coordenadas da canvas. “A propriedade Position é idêntica à propriedade Control.MousePosition.”

Para obter a posição, observe o evento OnMouseMove. O MouseEventArgs lhe dará as posições xey …

 protected override void OnMouseMove(MouseEventArgs mouseEv) 

Para definir a posição do mouse, use a propriedade Cursor.Position.

http://msdn.microsoft.com/en-us/library/system.windows.forms.cursor.position.aspx

Inicialize o cursor atual. Use-o para obter a posição de X e Y

 this.Cursor = new Cursor(Cursor.Current.Handle); int posX = Cursor.Position.X; int posY = Cursor.Position.Y; 
  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; } 

}