📅  最后修改于: 2023-12-03 15:38:47.492000             🧑  作者: Mango
在进行图形界面的处理时,经常需要获取鼠标的位置,从而实现跟随鼠标的效果或者执行特定的操作。本文介绍如何使用C#找到鼠标位置统一。
在C#中,可以通过鼠标事件来获取鼠标位置,即在鼠标事件处理函数中调用MouseEventArgs
类的X
和Y
属性。例如,在Windows Forms中,可以在MouseClick
事件处理函数中获取鼠标位置:
private void MyForm_MouseClick(object sender, MouseEventArgs e)
{
int x = e.X;
int y = e.Y;
// do something with (x, y)
}
同样的,也可以在MouseMove
事件处理函数中获取鼠标位置:
private void MyForm_MouseMove(object sender, MouseEventArgs e)
{
int x = e.X;
int y = e.Y;
// do something with (x, y)
}
上述的鼠标位置是相对于控件坐标系的位置,即以控件左上角为原点的坐标系。如果需要获取屏幕坐标系中的鼠标位置,可以调用Control.MousePosition
属性。例如:
Point p = Control.MousePosition;
int x = p.X;
int y = p.Y;
// do something with (x, y)
当界面中包含多个控件时,需要分别获取每个控件中的鼠标位置。可以在每个控件的事件处理函数中分别调用MouseEventArgs
类的X
和Y
属性,也可以通过Control.PointToClient
方法将屏幕坐标系中的位置转换为控件坐标系中的位置。例如:
private void MyButton_MouseClick(object sender, MouseEventArgs e)
{
int x = e.X;
int y = e.Y;
// do something with (x, y)
}
或者:
private void MyForm_MouseClick(object sender, MouseEventArgs e)
{
Point p = MyButton.PointToClient(Control.MousePosition);
int x = p.X;
int y = p.Y;
// do something with (x, y)
}
本文介绍了在C#中如何获取鼠标位置,并解释了相对于控件坐标系和屏幕坐标系的概念。对于多个控件的情况,可以通过调用事件处理函数的MouseEventArgs
参数获取鼠标位置,也可以通过Control.PointToClient
方法将屏幕坐标系中的位置转换为控件坐标系中的位置。