将listview中的数据比如111拖拽到picturebox中时,可以选择拖拽到的位置,并且拖拽进去的数据我们可以再次拖拽的数据222选择放在前面拖拽数据111的前面还是后面,我们可以考虑计算拖拽过去数据111使用drawstring方法展示在picturebox上后,计算111的图片大小来进行,代码具体该如何实现呢
时间: 2023-05-15 16:05:40 浏览: 48
您可以使用C#中的DragDrop事件来实现将数据从ListView拖拽到PictureBox中。在DragDrop事件中,您可以使用Graphics对象的DrawString方法将数据绘制到PictureBox上。要计算绘制的文本的大小,您可以使用Graphics对象的MeasureString方法。在拖拽数据时,您可以使用DoDragDrop方法来指定要拖拽的数据和拖拽操作的类型。在拖拽完成后,您可以使用DragEventArgs对象的Data属性来获取拖拽的数据。然后,您可以将数据添加到PictureBox中,并根据用户的选择将其放置在前面或后面。以下是示例代码:
private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
ListViewItem item = (ListViewItem)e.Item;
string data = item.Text;
DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Move);
}
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 data = (string)e.Data.GetData(typeof(string));
Graphics g = pictureBox1.CreateGraphics();
SizeF size = g.MeasureString(data, Font);
// 根据用户选择将数据放置在前面或后面
// ...
g.DrawString(data, Font, Brushes.Black, new PointF(x, y));
}