8 ответов:
Если вы не хотите ссылаться на формы, вы можете использовать interop для получения позиции курсора:
/// <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; }
курсор.Позиция получит текущее отравление экрана мыши (Если вы находитесь в управления на MousePosition свойство также получит то же значение).
чтобы установить положение мыши, вам придется использовать
Cursor.Positionи точка:Cursor.Position = new Point(x, y);вы можете сделать это в ваш
Mainметод перед созданием формы.
чтобы ответить на ваш конкретный пример:
// your example Location.X = Cursor.Position.X; Location.Y = Cursor.Position.Y; // sample code Console.WriteLine("x: " + Cursor.Position.X + " y: " + Cursor.Position.Y);Не забудьте добавить
using System.Windows.Forms;и добавление ссылки на него (щелкните правой кнопкой мыши ссылки > добавить ссылку > вкладка .NET > системы.Окна.Формы > ОК)
System.Windows.Forms.Control.MousePositionполучает положение курсора мыши в координатах экрана. "Свойство Position идентично элементу управления.Собственность MousePosition."
чтобы получить позицию, посмотрите на событие OnMouseMove. MouseEventArgs даст вам X и y позиции...
protected override void OnMouseMove(MouseEventArgs mouseEv)для установки положения мыши используйте курсор.свойство POSITION.
http://msdn.microsoft.com/en-us/library/system.windows.forms.cursor.position.aspx
инициализировать текущий курсор. Используйте его, чтобы получить положение X и 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; }}
Comments