Копирование и вставка объектов в буфер обмена c# - PullRequest
0 голосов
/ 19 января 2020

Доброе утро,

Я пытаюсь скопировать объект с помощью этого метода:

private void copierToolStripMenuItem_Click(object sender, EventArgs e)
{       
    Clipboard.SetData("Tache", Tâche); //Tâche is an object of "Tâche"
}

И вставить его с этим:

private void contextMenuStrip_option_Opened(object sender, EventArgs e)
{
    if(Clipboard.ContainsData("Tache"))
    {
        Tâche tache = (Tâche)Clipboard.GetData("Tache");

        contextMenuStrip_option.Items[3].Enabled = true;
    }
    else
    {
        contextMenuStrip_option.Items[3].Enabled = false; // Disables the option to paste
    }
}

Когда в буфере обмена ничего нет, ничего не происходит, и else {} выполняется.

В то время как при копировании возникает ошибка:

System.InvalidCastException: Невозможно привести объект типа «System.IO.MemoryStream» к типу «Task_Manager__Last_.Tâche».

Мой класс, однако, является сериализатором:

namespace Gestionnaire_de_tâche__Last_
{
    [Serializable()]
    public class Tâche
    {
           //.....
    }
}

Делаете ли вы есть решение? Спасибо

...