/// <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); }
/// <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; }