2016-04-14 86 views
0

假設我在Windows窗體上有一個類似於圖片框的控件,並且我希望用戶能夠像面板一樣自由地將其圍繞面板拖動到任意位置。什麼是最好的方法來做到這一點?如何在面板上拖動控件?

之後,我希望能夠在面板上檢索圖像的位置。很明顯,我需要MouseDown事件,我的第一個想法是將控件的位置設置爲與遊標位置相同,但是這種錯誤並不平滑。

+1

試試這個http://stackoverflow.com/questions/3868941/how-to-allow-user-to-drag-a-dynamically-created-control-at-the-location-of-his-c – drew

回答

-1
  1. 開始新的Thread

    Thread thr = new Thread(() => 
    { 
        while(true) 
        { 
         Thread.Sleep(10) // < Limit CPU usage 
         if(mouseDownBool == true) 
         { 
          icontrol.Location = new Point(Cursor.Position.X, Cursor.Position.Y); 
         } 
        } 
    }); 
    thr.Start(); 
    
  2. 如果鼠標按下更新mouseDownBool真

  3. 如果mousUp更新mouseDownBool假

您還可以添加更好的效果抵消。

0

此信息可能有所幫助HERE ... 和顯示輸出,只需添加一個標籤或文本框,並顯示coordinates-類似:

textbox1.Text = pictureBox1.Location.ToString(); 

或採取座標:

pictureBox.Location(這是一個點) - 或 -
pictureBox.Location.X // pictureBox.Location.Y(其是整數)