【问题标题】:Mouse move event outside of form鼠标在表单外移动事件
【发布时间】:2020-03-10 18:49:32
【问题描述】:

我正在创建一个 C# WinForm 应用程序,我想在鼠标在窗体外时检测鼠标移动。

我已经尝试创建不断计算鼠标坐标的新线程,它作为一项工作运行良好,但它使用while(true)。对 CPU 来说真的是太低效了。

【问题讨论】:

  • it work well as a job but it uses 'while(true)' so it's really inefficient for CPU 看来您正在寻求评论或其他建议。如果是这种情况,请前往Code Review,因为那个地方最好。
  • 感谢您查看我的问题,我正在寻找正确的方法,因为使用 'while(true)' 不是解决方案。
  • 不客气。这个问题本身很宽泛,或者可能会在这里产生许多固执己见的答案,而这两者都离题了。
  • 我在想也许有一些方法可以创建一个事件函数,当鼠标移出表单或类似的东西时会触发该函数,但我不知道现在该做什么。

标签: c# windows winforms events


【解决方案1】:

编辑(第一次的误解):

工作示例 -->

private void MainForm_MouseLeave(object sender, EventArgs e)
    {

        this.Cursor = new System.Windows.Forms.Cursor(System.Windows.Forms.Cursor.Current.Handle);
        System.Windows.Forms.Cursor.Position = new Point(0, 0);
        MoveCursor(300, 300);
        MoveCursor(400, 400);

    }
    private void MoveCursor(int X, int Y)
    {
        this.Cursor = new System.Windows.Forms.Cursor(System.Windows.Forms.Cursor.Current.Handle);
        System.Windows.Forms.Cursor.Position = new Point(X,Y);
    }

【讨论】:

  • 感谢您的回答@Kuba Do,但我真正想要的是在表单外工作的鼠标移动功能。
  • 对不起,我的误解
  • @Kuda Do,非常感谢您的尝试,但让我更好地问我的问题,因为我们有每次鼠标移动都会触发的“MouseMove”事件功能,我需要它,但是问题是“MouseMove”在表单之外不起作用,我需要检测鼠标在外面时是否在移动这个需要。再次感谢你。
猜你喜欢
  • 2013-04-22
  • 2019-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
相关资源
最近更新 更多