2010-12-15 24 views
5

我想知道,如果它在Windows窗體應用程序中調用DoDragDrop方法的控件有什麼不同。您在哪個控件上調用DoDragDrop方法有什麼關係?

我有一個FormBox和兩個PictureBox控件。一個可以被拖動,另一個將其AllowsDrop屬性設置爲true。

可拖動圖片框MouseDown事件處理程序如下:

private void dragPictureBox_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (sender is PictureBox) 
     { 
      var pictureBox = (PictureBox) sender; 
      var effect = pictureBox.DoDragDrop(
       pictureBox.Image, DragDropEffects.All); 
      MessageBox.Show("Drag ended in a " + effect); 
     } 
    } 

但是在呼籲的DoDragDrop上的圖片框代替,我好像我可以使用任何控制,例如窗體本身

var effect = this.DoDragDrop(pictureBox.Image, DragDropEffects.All); 

甚至

var effect = label1.DoDragDrop(pictureBox.Image, DragDropEffects.All); 

它使各色任何我在哪個控件上調用DoDragDrop方法?如果是這樣,有什麼區別?

回答

3

它沒有很好的記錄,但我相信它會影響哪個控件會在其上產生QueryContinueDrag事件。

所有的例子傾向於使用拖動數據的來源,所以我會堅持使用它。

+0

你是對的。 GiveFeedback事件也是如此。有趣的是,這兩個事件在拖動操作過程中始終發生,即使文檔聲明只有在鍵盤或鼠標按鈕狀態發生變化時纔會發生。 – comecme 2010-12-15 13:03:20

相關問題