我有以下问题:
我有一个带有两个文本框的窗口。当我在一个文本框中单击,然后单击任何其他位置(甚至是窗口外部),鼠标单击的位置应该写入文本框。
我找到了MouseKeyHook
库,在其中一个演示中展示了如何在Windows表单中更新鼠标位置。但我还没有成功将代码应用到我的问题上。我甚至不知道在哪里应该编写在演示中找到的代码。
到目前为止,我想到的是:
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace LineClicker
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void StarttextBox_GotFocus(object sender, RoutedEventArgs e)
{
Mouse.Capture(StarttextBox);
StarttextBox.Text = string.Format(" x {0} , y {1}", PointToScreen(Mouse.GetPosition(this)).X, PointToScreen(Mouse.GetPosition(this)).Y);
}
}
}
这是一个文本框的代码。当我点击它时,会显示x和y坐标。它们不是绝对值,我认为这是由于
GetPosition
方法中的参数this
导致的。我应该选择什么替代this
?另一件事是位置不总是更新。当我将鼠标移动到桌面右下角,然后通过按Tab键激活文本框时,位置不会得到更新。
在这里需要执行哪些步骤?