我有Windows窗体应用程序,我需要捕获窗口外的鼠标移动。我的窗口类中的简化代码是:
private void ButtonOnClick(object sender, EventArgs e)
{
Capture = true;
MouseMove += OnMouseMove;
}
private void OnMouseMove(object sender, MouseEventArgs e)
{
Console.Out.Write("!");
}
如你所见,当用户按下按钮时,我的程序应该开始跟踪鼠标(即使它在窗口之外 - 这是一个关键特征!)但是我的行为非常奇怪。如果我在窗口内移动鼠标,一切都很棒,!会写入控制台。但是当我将鼠标移到窗口外时,只有OnMouseMove被调用一次(并且该点实际上在外面)。然后,如果我将鼠标移动到窗口外的任何地方,它就不再被调用了。如果我将鼠标返回窗口,一切都很完美。离开 - 1条消息,在窗口中移动 - 好的。
有人可以帮忙吗?