获得光标位置

时间:2013-03-18 14:04:38

标签: c# forms user-controls runtime

我有一个名为TaskControl的usercontrol和一个用于通过拖动创建其他usercontrols的按钮。我希望新的用户控件看起来与我的光标所在的坐标相同。下面是我的代码。它不希望出现在那些坐标处,而新的usercontrol出现在旧坐标后面。 我的代码:

 private void button1_Click(object sender, EventArgs e)
    {


        Point localCoordinates = this.PointToClient(Cursor.Position);
        TaskControl t = new TaskControl();
        t.Location = new Point(Cursor.Position.X,Cursor.Position.Y);
        t.MouseDown += new MouseEventHandler(t_MouseDown);
        t.MouseMove += new MouseEventHandler(t_MouseMove);
        t.MouseUp += new MouseEventHandler(t_MouseUp);

        this.Controls.Add(t);
    } 

2 个答案:

答案 0 :(得分:1)

你必须使用Control.MousePosition静态属性来解决这个问题,

  

获取鼠标光标在屏幕坐标中的位置。

将您的使用控制移至坐标后重新进行。请注意,这取决于您如何构建UI,您可能需要将坐标转换为客户端。为此可以使用 Control.PointToClient静态方法,其中:

  

计算指定屏幕点到客户端的位置   坐标。

答案 1 :(得分:1)

看看Control.MousePosition

  

获取鼠标光标在屏幕坐标中的位置。