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