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

本文关键字:包装 对象 任何 何使用 拖动 | 更新日期: 2023-09-27 18:27:26

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。变量"。

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

如何解开此对象的包装?

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

当你调用 DoDragDrop 时,你的Variable对象会自动包装在一个DataObject中。若要检索它,需要使用要检索的数据类型调用GetData

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