private void listView1_ItemDrag(object sender, ItemDragEventArgs e) { ListViewItem item = (ListViewItem)e.Item; string itemName = item.Text; listView1.DoDragDrop(itemName, DragDropEffects.Copy); }如果将listview中的值拖拽到picturebox上并且使用drawstring的方法显示出来后,如何在picturebox上继续拖拽移动并且拖拽的数据原位置上消失了?代码该如何实现
时间: 2023-05-20 13:05:26 浏览: 44
您可以在picturebox的DragEnter事件中设置e.Effect = DragDropEffects.Copy,以允许拖放操作。然后,在picturebox的DragDrop事件中,使用Graphics对象的DrawString方法将拖放的数据绘制到picturebox上。最后,在listview的ItemDrag事件中,使用Remove方法从原位置上删除拖放的数据。以下是示例代码:
private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
ListViewItem item = (ListViewItem)e.Item;
string itemName = item.Text;
listView1.DoDragDrop(itemName, DragDropEffects.Copy);
}
private void pictureBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(string)))
{
e.Effect = DragDropEffects.Copy;
}
}
private void pictureBox1_DragDrop(object sender, DragEventArgs e)
{
string itemName = (string)e.Data.GetData(typeof(string));
Graphics g = pictureBox1.CreateGraphics();
g.DrawString(itemName, Font, Brushes.Black, e.X, e.Y);
g.Dispose();
}
private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
ListViewItem item = (ListViewItem)e.Item;
listView1.Items.Remove(item);
}