拖动和安培;删除>> e.getData返回null

时间:2017-06-20 07:34:40

标签: c#

我正在尝试使用c#中的拖放,但发生了一些奇怪的事情,我不知道为什么,这些是我的代码

        void imageRenderer_MouseDown(object sender, MouseEventArgs e)
        {                                
                imageRenderer.DoDragDrop(new DragData("Helloo",dropImage), DragDropEffects.All);
        }

这是我的DragData类,它存储1个字符串和1个图像:

    class DragData {
        public string plantName;
        public Image dragImage;

        public DragData(string name,Image dragingImage) {
            name = plantName;
            dragImage = dragingImage;
        }
    }

我的问题在于dragEnter事件:

        void Tile_DragEnter(object sender, DragEventArgs e)
        {
                e.Effect = DragDropEffects.None;
                DragData dropedData = (DragData)e.Data.GetData(typeof(DragData));
                Image a= dropedData.dragImage; 
                string b=dropedData.plantName;
        }  

现在,a不是null并且工作正常但是b是null我不知道为什么。谢谢你的帮助。以及如何修复它?:)

1 个答案:

答案 0 :(得分:0)

您正在将成员变量分配给参数:

public DragData(string name,Image dragingImage) { 
name = plantName;

正确的方法是,将参数分配给成员变量:

public DragData(string name,Image dragingImage) { 
plantName = name;