winform窗口鼠标位置问题
当窗体中加入控件填充下protected override void OnMouseMove(MouseEventArgs e)
{
this.Text += "x" + e.X.ToString() + "y" + e.Y.ToString();
MessageBox.Show("");
base.OnMouseMove(e);
}
无法获得鼠标位置。。。
用Control.MousePosition获得当前鼠标的坐标CurrentPoint,使用Control.PointToClient方法,前面获得的CurrentPoint作为其参数,返回的Point类型的对象即为鼠标相对于某个控件的坐标。
现在以鼠标相对于窗体的坐标做为例子,如下:
Point screenPoint = Control.MousePosition;//鼠标相对于屏幕左上角的坐标
Point formPoint = this.PointToClient(Control.MousePosition);//鼠标相对于窗体左上角的坐标
同理:
Point button1Point= button1Point.PointToClient(Control.MousePosition); //鼠标相对于button1左上角的坐标
还有Control.PointToScreen方法,返回的是相对于屏幕的坐标。
本菜鸟懒谁帮整理下窗体下随时捕获鼠标事件
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0200)
//如果是鼠标操作得到鼠标位于窗口xy