您调用DoDragDrop方法的控件是否重要?

时间:2010-12-15 10:36:47

标签: c# winforms controls drag-and-drop

我想知道我在Windows窗体应用程序中调用DoDragDrop方法的控件是否有任何区别。

我有一个带有两个PictureBox控件的Form。可以拖动一个,另一个将其AllowDrop属性设置为true。

可拖动PictureBox的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);
        }
    }

但是我没有在pictureBox上调用DoDragDrop,我似乎可以使用任何控件,例如Form本身

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

甚至

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

对于我称之为DoDragDrop方法的控件有什么不同?如果是这样,有什么区别?

1 个答案:

答案 0 :(得分:3)

它没有很好的文档记录,但我相信它会影响哪个控件会引发QueryContinueDrag事件。

所有示例都倾向于使用拖动数据的来源,所以我坚持使用它。