c# - C#:在表单之外获取鼠标点击位置 - 失去焦点,在外面点击后 form1 不在前面
问题描述
我需要在表单之外捕获鼠标单击位置。我正在使用 Windows 10 和 Visual Studio Professional 2017
为了捕获表单外的鼠标单击位置,我使用了表单停用事件:
private void Form1_Deactivate(object sender, EventArgs e)
{
txtBox1.Text = "Xpos : " + Cursor.Position.X + " Ypos : " + Cursor.Position.Y;
this.Activate();
}
在 Form1 窗口外单击后,文本框将由新的鼠标位置更新,但 Form1 不再处于活动状态。这意味着在 Form1 窗口外再次单击不会有任何效果。Form1 窗口标签字体颜色从黑色变为灰色。
this.Activate(); 行 显示以下行为(不幸的是,它不能按我的需要工作):
//this.Activate(); -> 在 Form1 窗口外单击后,我在 Windows 任务栏中看到 Form 1 不再处于活动状态
this.Activate(); -> 在 Form1 窗口外单击后,我在任务栏中看到 Form 1 仍处于活动状态(Form1 仍处于标记状态),有时它会闪烁橙色。
如何获得以下行为:
在 Form1 窗口外单击后,文本框将更新为新的单击位置,Form1 窗口保持活动状态并准备捕获 Form1 窗口外的下一次单击。此外,Form1 应始终位于最前面。
请看下面我当前的代码:
namespace GetMouseCursor2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Deactivate(object sender, EventArgs e)
{
txtBox1.Text = "Xpos : " + Cursor.Position.X + " Ypos : " + Cursor.Position.Y;
this.Activate();
}
}
}
非常感谢您提前提供帮助。简
解决方案
推荐阅读
- android - 从调试应用程序中暂时禁用泄漏金丝雀
- scala - 无法使用 jackson-cbor 在 Akka 中序列化密封特征
- inheritance - Dart:可以使工厂方法多态吗?
- visual-studio - 如何在 Visual Studio 中处理“密钥库被篡改或密码不正确”
- kubernetes - Kubernetes:服务路由到具有多个容器的 pod
- api - 如何保护 API 烧瓶以便仅用于我的前端应用程序?
- multithreading - Tkinter python中的线程
- html - 如何使用 Bootstrap 创建多行组?
- python-3.x - 如何强制子类为抽象属性(在 Pycharm 中)实现 setter(和 getter)?
- spring-data-rest - Spring Data Rest 中 POST 的只读属性