Положение мыши в C#: методы получения координат мыши в различных контекстах

Чтобы получить положение мыши в C#, вы можете использовать различные методы в зависимости от контекста вашего приложения. Вот некоторые распространенные подходы:

Метод 1: использование Windows Forms

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    int mouseX = e.X;
    int mouseY = e.Y;
    // Use mouseX and mouseY as needed
}

Метод 2: использование WPF (Windows Presentation Foundation)

private void Window_MouseMove(object sender, MouseEventArgs e)
{
    Point mousePos = e.GetPosition(this);
    double mouseX = mousePos.X;
    double mouseY = mousePos.Y;
    // Use mouseX and mouseY as needed
}

Метод 3: использование Win32 API

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool GetCursorPos(out POINT lpPoint);
private struct POINT
{
    public int X;
    public int Y;
}
private void GetMousePosition()
{
    POINT cursorPos;
    if (GetCursorPos(out cursorPos))
    {
        int mouseX = cursorPos.X;
        int mouseY = cursorPos.Y;
        // Use mouseX and mouseY as needed
    }
}

Метод 4. Использование глобального крючка мыши (требуется дополнительная настройка)

private void StartMouseHook()
{
    MouseHook.Start();
    MouseHook.MouseMoveEvent += MouseHook_MouseMoveEvent;
}
private void StopMouseHook()
{
    MouseHook.Stop();
    MouseHook.MouseMoveEvent -= MouseHook_MouseMoveEvent;
}
private void MouseHook_MouseMoveEvent(object sender, MouseEventArgs e)
{
    int mouseX = e.X;
    int mouseY = e.Y;
    // Use mouseX and mouseY as needed
}

Эти методы предоставляют различные способы получения положения мыши в C#. Выберите тот, который лучше всего соответствует требованиям вашего приложения.