2

我有一个UserControl看起来像WPF's XAML编辑器的东西。我想在其中拖动树节点并做一些事情。拖动系统适用于树视图部分。但我似乎无法让 drop 部分在我的自定义控件中工作。(控件是使用sharpdevelop库构建的)。

我将自定义控件的AllowDrop属性设置为True. 我将此添加到我的控件中:

this.DragDrop += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragDrop)

private void XmlEditControl_DragDrop(object sender, DragEventArgs e)
{
    MessageBox.Show("I dropped");
}

但我从来没有看到消息框。我错过了一些明显的东西吗?

4

1 回答 1

3

您需要更改第DragDropEffects一次DragEventArgs触发DragEnter事件的时间以完成拖放操作。因此,该DragDrop事件将触发

例子

this.DragEnter += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragEnter);
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragDrop);

private void XmlEditControl_DragEnter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.All;
}
private void XmlEditControl_DragDrop(object sender, DragEventArgs e)
{
    MessageBox.Show("I dropped");
}

谢谢,
我希望你觉得这有帮助:)

于 2012-12-21T19:15:12.940 回答