2013-03-18 147 views
1

我有一個名爲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); 
    } 
+1

嘗試在this.Controls.Add(t)後設置t.Location; – mbeckish 2013-03-18 14:08:50

回答

1

你必須制定出使用Control.MousePosition靜態屬性,這

獲取屏幕座標中的鼠標光標的位置。

將您的使用控件移動到所檢索的座標之後。請注意,這取決於您如何構建您的用戶界面,您可能需要將座標轉換爲客戶端。對於此可以使用 Control.PointToClient靜態方法,其中:

計算指定屏幕點的位置到客戶 座標。