C# 在哪个控件上调用DoDragDrop方法重要吗?
我想知道在Windows窗体应用程序中调用DoDragDrop方法的控件是否会有所不同 我有一个带有两个PictureBox控件的窗体。一个可以拖动,另一个的AllowsDrop属性设置为true 可拖动PictureBox的MouseDown事件处理程序如下所示:C# 在哪个控件上调用DoDragDrop方法重要吗?,c#,winforms,controls,drag-and-drop,C#,Winforms,Controls,Drag And Drop,我想知道在Windows窗体应用程序中调用DoDragDrop方法的控件是否会有所不同 我有一个带有两个PictureBox控件的窗体。一个可以拖动,另一个的AllowsDrop属性设置为true 可拖动PictureBox的MouseDown事件处理程序如下所示: private void dragPictureBox_MouseDown(object sender, MouseEventArgs e) { if (sender is PictureBox)
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
var effect = this.DoDragDrop(pictureBox.Image, DragDropEffects.All);
甚至
var effect = label1.DoDragDrop(pictureBox.Image, DragDropEffects.All);
在我调用DoDragDrop方法的控件上有什么区别吗?如果是这样的话,有什么区别呢?没有很好的文档记录,但我相信它会影响哪个控件会引发事件
所有的例子都倾向于使用阻力数据的来源,所以我坚持使用它。你完全正确。GiveFeedback事件也是如此。有趣的是,这两个事件都会在拖动操作期间持续发生,即使文档中指出只有在键盘或鼠标按钮状态发生更改时才会发生。