我是想把listView里的数据拖动到pictureBox里我现在想拖动右下角的listView里的摄像机1到一个pictureBox里
拖到哪个pictureBox里就在哪个里边进行判断
判断拖动的是哪个摄象机,然后再在pictureBox判断需要显示出哪个视频 不知道这个思路是否正确困扰了我好几天了,在网上搜了好多,没找到我想要的功能,而且还有的封装成了DLL,想看看怎么写的或者是修改一下都不行我现在连拖拽的功能都不知道怎么写呢````请各位帮忙

解决方案 »

  1.   

    listView_MouseDown
    listView_MouseMovepictureBox.AllowDrop==truepictureBox_DragEnter
    pictureBox_DragDrop
      

  2.   

    pictureBox1.AllowDrop==true pictureBox1_DragEnter 
    pictureBox1_DragDrop
      

  3.   


            private Point Position = new Point(0, 0);
            private void treeFileView_ItemDrag(object sender, ItemDragEventArgs e)
            {
                DoDragDrop(e.Item, DragDropEffects.Move); 
            }        private void treeFileView_DragEnter(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(typeof(TreeNode)))
                {
                    e.Effect = DragDropEffects.Move;
                }
                else
                    e.Effect = DragDropEffects.None;        }        string filePath = Application.StartupPath.ToString() + "\\MyFiles\\";
            private void treeFileView_DragDrop(object sender, DragEventArgs e)
            {
                TreeNode myNode = null;
                if (e.Data.GetDataPresent(typeof(TreeNode)))
                {
                    myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
                }
                else
                {
                    MessageBox.Show("error");
                }            Position.X = e.X;
                Position.Y = e.Y;
                Position = treeFileView.PointToClient(Position);
                TreeNode DropNode = treeFileView.GetNodeAt(Position);
                if (DropNode.Parent == myNode || DropNode == myNode)
                {            }
                else if (DirAndFileOperator.IsFile(DropNode))
                {
                
                }
                else
                {
                    //DirAndFileOperator.MoveFolder(filePath + myNode.FullPath, filePath + DropNode.FullPath + @"\" + myNode.Name);
                    TreeNode DragNode = myNode;
                    myNode.Remove();
                    DropNode.Nodes.Add(DragNode);
                }
                treeFileView.SelectedNode = DropNode;
                DropNode.Expand();
            }        private void treeFileView_DragOver(object sender, DragEventArgs e)
            {
                TreeNode myNode = null;
                if (e.Data.GetDataPresent(typeof(TreeNode)))
                {
                    e.Effect = DragDropEffects.Move;
                    myNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
                }
                else
                    e.Effect = DragDropEffects.None;
                Position.X = e.X;
                Position.Y = e.Y;
                Position = treeFileView.PointToClient(Position);
                TreeNode DropNode = treeFileView.GetNodeAt(Position);
                treeFileView.SelectedNode = DropNode;
            }
      

  4.   

    ,最近也在弄这drag & drop
      

  5.   

    做了一下,很容易。把代码给你参考一下    private void Form1_Load(object sender, EventArgs e)
        {
            //在Load的时候把picturebox的AllowDrop属性设置为true。
             // ps:pictureBox的属性只能通过写代码设置,并且还没有智能感知
            this.pictureBox1.AllowDrop = true;
        }    //在listView的ItemDrag里把摄像机名字传送
        private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
        {
            DoDragDrop(e.Item.ToString(), DragDropEffects.Copy);
        }    //判断是不是可以接收的数据类型
        private void pictureBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(typeof(string)))
                e.Effect = DragDropEffects.Copy;
            else
                e.Effect = DragDropEffects.None;
        }    //处理dragdrop事件
        private void pictureBox1_DragDrop(object sender, DragEventArgs e)
        {
            string camera = string.Empty ;
            if (e.Data.Equals(typeof(string)))
                camera = e.Data.GetData(typeof(string)).ToString();
            if (path.Length > 0)
            {
                //在这里做你的判断(判断拖动的是哪个摄象机,然后再在pictureBox判断需要显示出哪个视频) 
                //pictureBox1.Load(camera);
            }
        }
      

  6.   

    风中聆听
    --------------------------------------
    我照着你的代码研究了一天```
    可是没研究明白我现在那个只能接收拖拽过去的文件,但是listView拖过去的数据 鼠标显示不可放的状态,就是一个圆圈里有一个斜杠  \好象
    this.pictureBox1.AllowDrop = true;
    这句对listView的数据不起作用呢``
      

  7.   

    [[email protected]][/email]有代码的给我发一下代码好吧```
      

  8.   

    解决了
    JeffChung  6楼的代码就可以实现了非常感谢!