将listview中的数据比如111拖拽到picturebox中时,可以选择拖拽到的位置,这个位置就是鼠标按下时的位置,并且拖拽进去的数据我们可以再次拖拽的数据222选择放在前面拖拽数据111的前面还是后面,我们可以考虑计算拖拽过去数据111使用drawstring方法展示在picturebox上后,计算111的图片大小来进行,代码具体该如何实现呢
时间: 2023-05-15 16:05:40 浏览: 42
您可以使用C#中的DragDrop事件来实现将数据从ListView拖拽到PictureBox中。在DragDrop事件中,您可以使用Graphics对象的DrawString方法将数据绘制到PictureBox上。为了计算数据的大小,您可以使用Graphics对象的MeasureString方法。然后,您可以使用鼠标的位置来确定数据应该放置在PictureBox中的位置。如果您想让用户选择数据的放置位置,您可以使用鼠标的右键菜单来提供选项。以下是一个示例代码片段:
private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
listView1.DoDragDrop(e.Item, DragDropEffects.Move);
}
private void pictureBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(ListViewItem)))
{
e.Effect = DragDropEffects.Move;
}
}
private void pictureBox1_DragDrop(object sender, DragEventArgs e)
{
ListViewItem item = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
string data = item.Text;
Graphics g = pictureBox1.CreateGraphics();
SizeF size = g.MeasureString(data, Font);
int x = e.X - (int)size.Width / 2;
int y = e.Y - (int)size.Height / 2;
g.DrawString(data, Font, Brushes.Black, x, y);
g.Dispose();
}