Мне нужно добавить инверсию мыши в моей форме. Я использовал этот подход:
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)) и вместо этого получаете высокую нагрузку на процессор. Любые решения?