C# 从剪贴板获取后面板

C# 从剪贴板获取后面板,c#,clipboard,C#,Clipboard,这是我的课,我的面板上总是有一个空值 有人能告诉我怎么做吗 [Serializable] public class DragDropBlock : Panel { public DragDropBlock() { this.MouseDown += new MouseEventHandler(Mouse_Down); this.MouseUp += new MouseEventHandler(Mouse_Up);

这是我的课,我的面板上总是有一个空值

有人能告诉我怎么做吗

    [Serializable]
public class DragDropBlock : Panel
{
    public DragDropBlock()
        {
            this.MouseDown += new MouseEventHandler(Mouse_Down);
            this.MouseUp += new MouseEventHandler(Mouse_Up);
        }

        void Mouse_Down(object sender, System.Windows.Forms.MouseEventArgs e)
        {

           Clipboard.SetData("DragDropBlock", this);
        }

        void Mouse_Up(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            IDataObject IBlock = Clipboard.GetDataObject();
            DragDropBlock Block = (DragDropBlock)IBlock.GetData(typeof(DragDropBlock));

        }
}
给定一个类:

[Serializable]
class Test
{
    public string Data
    {
        get;
        set;
    }
}
这项工作:

Test t = new Test()
{
     Data = "DERP!"
};

Clipboard.SetData("Test", t);

Test newT = (Test)Clipboard.GetData("Test");

Console.WriteLine(newT.Data);
如果要使用数据对象,请执行以下操作:

Test t = new Test()
{
    Data = "DERP!"
};

Clipboard.SetDataObject(new DataObject("Test", t));

Test newT = (Test)Clipboard.GetDataObject().GetData("Test");

Console.WriteLine(newT.Data);
两者的输出为:


DERP

这是我班的更正:工作

         [Serializable]
class DragBlock
{
    public string Data
    {
        get;
        set;
    }
}

public class DragDropBlock : Panel
{
    DragBlock Block;

    public DragDropBlock()
        {
            this.MouseDown += new MouseEventHandler(Mouse_Down);
            this.MouseUp += new MouseEventHandler(Mouse_Up);

            Block = new DragBlock()
            {
                Data = "TEST!"
            };
        }

        void Mouse_Down(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Clipboard.SetDataObject(new DataObject("DragBlock", Block));
        }

        void Mouse_Up(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            DragBlock newBlock = (DragBlock)Clipboard.GetDataObject().GetData("DragBlock");

            Console.WriteLine(newBlock.Data);
    }
}

我相信
Mouse\u Up
应该包含
DragDropBlock=(DragDropBlock)剪贴板不起作用,但感谢您的想法!!!