如何使用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 中有正确的对象。
如何解开此对象的包装?
当你调用 DoDragDrop
时,你的Variable
对象会自动包装在一个DataObject
中。若要检索它,需要使用要检索的数据类型调用GetData
:
Variable var = (Variable)e.Data.GetData(typeof(Variable));