Как перетащить любой объект с C #?(Упаковка) - PullRequest
0 голосов
/ 12 марта 2012
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".

Iиметь правильный объект внутри data.form.

Как мне развернуть этот объект?

1 Ответ

2 голосов
/ 12 марта 2012

Когда вы вызываете DoDragDrop, ваш Variable объект автоматически оборачивается в DataObject.Чтобы получить его, вам нужно вызвать GetData с типом данных, которые вы хотите получить:

Variable var = (Variable)e.Data.GetData(typeof(Variable));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...