只需拖动鼠标就可以很容易地将光标的位置放在窗体的边界之外,当位置发生变化时,它会向窗体发送许多值,形成下面的代码行.
MessageBox.Show(Cursor.Position.ToString());
Run Code Online (Sandbox Code Playgroud)
但是当用户点击表格边界时,我需要获得鼠标位置.不仅仅是悬停鼠标.我使用以下代码行来执行此操作:
private void Form1_Deactivate(object sender, EventArgs e)
{
MessageBox.Show(Cursor.Position.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我放置了MessageBox.Show(Cursor.Position.ToString()); 进入表单停用事件.当用户在表单外单击时,此事件肯定会发生.但是当用户没有单击外部但是使用ALT + TAB组合键更改程序时,它也会发送错误的值.实际上我必须从第一次点击的位置开始捕捉该区域的屏幕截图.因此,当在表单外部单击时,我需要光标的位置.喜欢:

小智 10
这可能对某些人有所帮助。
在这里,我使用Windows.Forms.Timer和 两个文本框来显示 [X 和 Y] 光标位置。在计时器刻度上调用 APIGetCursorPos并获取光标位置。
public partial class Form1 : Form
{
[DllImport("user32.dll")]
static extern bool GetCursorPos(ref Point lpPoint);
public Form1()
{
InitializeComponent();
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
var pt = new Point();
GetCursorPos(ref pt);
textBox1.Text = pt.X.ToString();
textBox2.Text = pt.Y.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
问候,兰吉特。