日期:2014-05-18 浏览次数:21198 次
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; }
------解决方案--------------------
做了一下,很容易。把代码给你参考一下
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)))