如何使用C#拖动任何对象? (包装)

时间:2012-03-12 16:18:10

标签: c# winforms drag-and-drop

private void treeView_ItemDrag(object sender, ItemDragEventArgs e)
{
    try
    {
        IVariable variable = getSelectedNode();
        this.treeView.DoDragDrop((Variable)variable, DragDropEffects.Copy);
    }
    catch (Exception)       {       }
}

private void splitContainer_Panel2_DragDrop(object sender, DragEventArgs e)
{

    Variable var = (Variable)(e.Data);
}

变量是一个变量对象(单例模式)。我希望将此对象从树视图拖动到另一个视图(以绘制对象)。 我收到此错误代码:

  

“System.Windows.Forms.DataObject”类型的对象无法转换为“ORANGE_VARIABLE.Variable”类型。

我在data.form中有正确的对象。

如何拆开此物品?

1 个答案:

答案 0 :(得分:2)

当您致电DoDragDrop时,您的Variable对象会自动换入DataObject。要检索它,您需要使用要检索的数据类型调用GetData

Variable var = (Variable)e.Data.GetData(typeof(Variable));