FrmInfo frm = new FrmInfo();
Point MousePos = Control.MousePosition;
frm.Location = new Point(MousePos.X + 30, MousePos.Y + 30);
frm.Show();以上是我的代码
我想实现的是:
我鼠标不管点击哪里
FrmInfo 窗体都是鼠标点击处的右下角
但是上面的代码却实现不了
我也不知道哪里错了
请高手指点下
Point MousePos = Control.MousePosition;
frm.Location = new Point(MousePos.X + 30, MousePos.Y + 30);
frm.Show();以上是我的代码
我想实现的是:
我鼠标不管点击哪里
FrmInfo 窗体都是鼠标点击处的右下角
但是上面的代码却实现不了
我也不知道哪里错了
请高手指点下
由于 Point 类是值类型(在 Visual Basic 中是 Structure,在 Visual C# 中是 struct),它按传值方式返回,意味着访问该属性将返回控件的左上点的副本。因此,调整从该属性返回的 Point 的 X 或 Y 属性将不影响控件的 Left、Right、Top 或 Bottom 属性值。若要调整这些属性,请分别设置每个属性值,或用新的 Point 设置 Location 属性。如果 Control 是 Form,那么 Location 属性值表示 Form 的左上角(以屏幕坐标表示)。
需要全局钩子来处理
是相对parent的位置.
frm.Location 你现在付的坐标值是相对当前窗口内部的坐标值。也可以这样写FrmInfo frm = new FrmInfo();
Point MousePos = Control.MousePosition;
frm.Location = new Point(this.Location.x + MousePos.X + 30, this.Location.y + MousePos.Y + 30);
frm.Show();