夏456 2023-03-17 09:39 采纳率: 85.7%
浏览 35
已结题

如何将listview中的项拖拽显示到picturebox的背景中

img


想要将listview中的内容比如说111来拖拽到picturebox的背景上并且在该背景上显示111该如何实现?

  • 写回答

4条回答 默认 最新

  • 凉城┓.〆 2023-03-17 09:57
    关注

    参GPT:
    可以通过实现 ListView 控件的 ItemDrag 事件和 PictureBox 控件的 DragEnter 和 DragDrop 事件来实现将 ListView 中的项拖拽显示到 PictureBox 的背景中。
    具体的实现步骤如下:
    1、在 ListView 控件中添加需要拖拽的项,并开启 ListView 的 AllowItemDrag 属性。

    listView1.AllowDrop = true;
    listView1.AllowItemDrag = true;
    listView1.Items.Add("Item 1");
    listView1.Items.Add("Item 2");
    listView1.Items.Add("Item 3");
    

    2、在 ListView 控件的 ItemDrag 事件中设置被拖拽的项的数据格式、数据以及鼠标指针效果。

    private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
    {
        ListViewItem item = (ListViewItem)e.Item;
        string itemName = item.Text;
        listView1.DoDragDrop(itemName, DragDropEffects.Copy);
    }
    

    3、在 PictureBox 控件中设置允许拖拽操作,并实现 DragEnter 和 DragDrop 事件。

    pictureBox1.AllowDrop = true;
    pictureBox1.DragEnter += new DragEventHandler(pictureBox1_DragEnter);
    pictureBox1.DragDrop += new DragEventHandler(pictureBox1_DragDrop);
    

    4、在 PictureBox 控件的 DragEnter 事件中验证被拖拽的数据是否为文本格式。

    private void pictureBox1_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.Text))
        {
            e.Effect = DragDropEffects.Copy;
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
    }
    

    5、在 PictureBox 控件的 DragDrop 事件中获取被拖拽的文本数据,并将其设置为 PictureBox 的背景图片。

    private void pictureBox1_DragDrop(object sender, DragEventArgs e)
    {
        string itemName = (string)e.Data.GetData(DataFormats.Text);
        Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
        Graphics g = Graphics.FromImage(bmp);
        g.DrawString(itemName, new Font("Arial", 16), Brushes.Blue, new Point(10, 10));
        pictureBox1.Image = bmp;
    }
    

    最终的效果是,在 ListView 控件中拖拽一个项并将其放置到 PictureBox 控件上时,PictureBox 的背景图片会显示为被拖拽的项的文本。需要注意的是,在 PictureBox 控件的 DragEnter 事件中要验证被拖拽的数据格式是否为文本格式,以保证只有文本数据才能被拖拽。同时,在 DragDrop 事件中需要将文本数据转换为图片,并将其设置为 PictureBox 的背景图片。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月17日
  • 创建了问题 3月17日

悬赏问题

  • ¥100 关于加载卡的问题有能知道这个要怎么处理吗?
  • ¥100 rtmpose姿态评估
  • ¥15 java 通过反射找路径下的类,打包后就找不到
  • ¥15 通联支付网上收银统一下单接口
  • ¥15 angular有偿编写,
  • ¥15 centos7系统下abinit安装时make出错
  • ¥15 hbuildex运行微信小程序报错
  • ¥15 关于#python#的问题:我知道这个问题对你们来说肯定so easy
  • ¥15 wpf datagrid如何实现多层表头
  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。