2

私はエディタUserControlのように見えるを持っています。WPF's XAMLその中にツリーノードをドラッグして何かをしたい。ツリービュー部分ではドラッグシステムが機能しています。しかし、カスタムコントロールでドロップパーツを機能させることができないようです。(コントロールは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するタイミングを変更する必要があります。したがって、イベントが発生しますDragEventArgsDragEnterDragDrop

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 に答える