现在我正在学习c#
,我试图做一个拖放功能。我想从 ListView (文本)中拖动一个项目,该项目在放置时将转换为 Panel 控件中的图像。
图像保存在项目的 inbin/Debug
目录中。
到目前为止,我已经设法将文本拖放到文本或从外部源(来自我的桌面的图像或来自互联网页面的文本)拖放到图像的图像。
这不是我想要的形式。我想通过拖动来获取文本,在函数 ( ) 中添加扩展名.png
并将图像拖放到面板上。
这是我的应用程序的屏幕截图。在左边我有一个带有文本的 ListView,在右边我有一个面板。
现在面板有一个welcome BackgroundImage
,但是当我拖放时,我希望它有一个BackgroundImage
从左侧开始的特定应用程序。
这是我现在拥有的代码。有了这个,我可以从我的桌面获取图像,但不能从 ListView 获取文本。
private void panel1_DragDrop(object sender, DragEventArgs e) {
foreach (string pic in (string[])e.Data.GetData(DataFormats.FileDrop)) {
Image img = Image.FromFile(pic);
panel1.BackgroundImage = img;
}
}
private void panel1_DragEnter(object sender, DragEventArgs e) {
e.Effect = DragDropEffects.Copy;
}
private void listView1_MouseDown(object sender, MouseEventArgs e) {
listView1.DoDragDrop(listView1.SelectedItems,
DragDropEffects.Copy | DragDropEffects.Move);
}