示例#1
0
        /// <summary>
        /// This event is fired when the user releases the mouse over the drop target.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fileSystemTreeView_DragDrop(object sender, DragEventArgs e)
        {
            // Unlock updates
            DragHelper.ImageList_DragLeave(this.fileSystemTreeView.Handle);

            Console.WriteLine("drag: {0}", dragNode.Text);
            Point    position = this.fileSystemTreeView.PointToClient(new Point(e.X, e.Y));
            TreeNode dropNode = this.fileSystemTreeView.GetNodeAt(position);

            Console.WriteLine("drop: {0}", dropNode.Text);

            if (this.dragNode != dropNode)
            {
                // node is a drive
                if (this.dragNode.Parent == null)
                {
                }
                // node is a folder
                else
                {
                    try
                    {
                        Directory.Move(this.dragNode.FullPath.Replace(@"\\", @"\"), dropNode.FullPath.Replace(@"\\", @"\") + @"\" + this.dragNode.Text);

                        if (this.dragNode.Parent.Nodes.Count == 1)
                        {
                            this.dragNode.Parent.ImageIndex         = 0;
                            this.dragNode.Parent.SelectedImageIndex = 0;
                            this.dragNode.Parent.StateImageIndex    = 0;
                        }
                    }
                    catch (IOException ex)
                    {
                    }

                    //if ((e.KeyState & 8) == 8) //ctrl - copy
                    //{
                    //    Directory.Copy()
                    //}
                    //else
                    //{
                    //    Directory.Move()
                    //}
                }
            }

            this.dragNode            = null;
            this.scrollTimer.Enabled = false;
            //this.tooltip.Hide(this.fileSystemTreeView);
        }
示例#2
0
 /// <summary>
 /// This event is fired when the user leaves the control with the mouse while dragging an element.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void fileSystemTreeView_DragLeave(object sender, EventArgs e)
 {
     Console.WriteLine("dragleave");
     DragHelper.ImageList_DragLeave(this.fileSystemTreeView.Handle);
     this.scrollTimer.Enabled = false;
 }