我正在尝试在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并且我不知道为什么。谢谢您的帮助以及如何解决它?
最佳答案
您正在将成员变量分配给参数:
public DragData(string name,Image dragingImage) {
name = plantName;
正确的方法是,将参数分配给成员变量:
public DragData(string name,Image dragingImage) {
plantName = name;