停止鼠标光标水平移动,但仍希望捕获鼠标移动事件

本文关键字:移动 鼠标 希望 事件 光标 水平 | 更新日期: 2023-09-27 17:56:17

在我的winforms应用程序中,我有一个功能可以打开一个下拉菜单,您可以向左或向右移动光标以选择子选项。但是,我不希望光标移动,我只希望子选项自己向左或向右移动(取决于鼠标尝试向哪个方向移动)。我希望这对你有意义。

有谁知道如何阻止光标向特定方向移动,同时仍然能够在用户"移动"鼠标时捕获鼠标移动事件?

任何帮助不胜感激,谢谢!

停止鼠标光标水平移动,但仍希望捕获鼠标移动事件

您不应该尝试实现这一点,因为它会破坏所有用户界面标准,只会让用户感到困惑。应用程序无法决定鼠标应该能够移动到的位置。如果您想实现其他允许导航选择的方法,那么我建议您调查其他选项。

我认为您根本不应该实现这样的解决方案。

但是,您可以将鼠标光标位置设置回其在鼠标移动处理程序中的原始位置。但是,您必须在设置位置之前删除处理程序,然后在此之后再次添加它们。您可以通过 pInvoke 设置鼠标位置。如何做到这一点,你可以在这里找到 http://pinvoke.net/default.aspx/user32.mouse_event

您可以手动设置光标位置

    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        Cursor.Position = new Point(400,400);
        Console.WriteLine("fired");
    }