FrmInfo frm = new FrmInfo();
Point MousePos = Control.MousePosition;
frm.Location = new Point(MousePos.X + 30, MousePos.Y + 30);
frm.Show();以上是我的代码
我想实现的是:
我鼠标不管点击哪里
FrmInfo 窗体都是鼠标点击处的右下角
但是上面的代码却实现不了  
我也不知道哪里错了
请高手指点下

解决方案 »

  1.   

    Location 属性:控件的左上角相对于其容器的左上角的坐标。
    由于 Point 类是值类型(在 Visual Basic 中是 Structure,在 Visual C# 中是 struct),它按传值方式返回,意味着访问该属性将返回控件的左上点的副本。因此,调整从该属性返回的 Point 的 X 或 Y 属性将不影响控件的 Left、Right、Top 或 Bottom 属性值。若要调整这些属性,请分别设置每个属性值,或用新的 Point 设置 Location 属性。如果 Control 是 Form,那么 Location 属性值表示 Form 的左上角(以屏幕坐标表示)。
      

  2.   

    明显如果离开FROM的范围在点 就不属于你APP的消息了.
    需要全局钩子来处理
      

  3.   

    form的位置.
    是相对parent的位置.
      

  4.   

    你应该转化成屏幕坐标后再付给
    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();