在我的winforms应用程序中,我有一个打开下拉菜单的功能,您可以向左或向右移动光标以选择子选项。但是,我不希望光标移动,我只想让它们自己的子选项向左或向右移动(取决于鼠标试图移动的方向)。我希望这对你有意义。
有没有人知道如何阻止光标在特定方向上移动,同时仍然能够在用户“移动”鼠标时捕获鼠标移动事件?
感谢任何帮助,谢谢!
答案 0 :(得分:6)
您不应该尝试实现这一点,因为它会破坏所有用户界面标准,并且会让用户感到困惑。您的应用程序无法决定鼠标应该移动的位置。如果你想实现允许导航选择的其他方式,那么我建议调查其他选项。
答案 1 :(得分:2)
我认为你根本不应该实施这样的解决方案。
但是,您可以将鼠标光标位置设置回MouseMove处理程序中的原始位置。但是你必须在设置位置之前删除处理程序并在此之后再次添加它们。您可以通过pInvoke设置鼠标位置。怎么做,你可以在这里找到http://pinvoke.net/default.aspx/user32.mouse_event
答案 2 :(得分:1)
您可以手动设置光标位置
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
Cursor.Position = new Point(400,400);
Console.WriteLine("fired");
}