0

これは私のクラスです。私は常にパネルに null を挿入しています...

誰かがこれを行う方法についてのヒントを教えてもらえますか?

    [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));

        }
}
4

2 に答える 2

0

与えられたクラス:

[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!

于 2013-06-13T00:06:30.160 に答える