Изменить положение курсора при перемещении мыши - PullRequest
0 голосов
/ 09 марта 2020

Мне нужно добавить инверсию мыши в моей форме. Я использовал этот подход:

private void OnMouseMove(object sender, MouseEventArgs e)
{
    var delta = new Point(e.X - _prevCursorPos, e.Y - _prevCursorPos);
    if (_invertX)
        delta.X = -delta.X;
    if (_invertY)
        delta.Y = -delta.Y;

    Cursor.Position = new Point(_prevCursorPos.X + delta.X, _prevCursorPos.Y + delta.Y);
    _prevCursorPos = Cursor.Position;
}

Однако кажется, что позиция курсора сбрасывается после выполнения кода события, потому что он остается тем же, и вы можете заметить только некоторые незаметные подергивания. Я также пытался установить новую позицию в цикле while параллельного потока, но он очень не отвечает и не мигает, если вы не удаляете какие-либо вызовы Thread.Sleep (я использовал Thread.Sleep (1)) и вместо этого получаете высокую нагрузку на процессор. Любые решения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...