private void treeView1_DragDrop(object sender, DragEventArgs e) { Array a = (Array)e.Data.GetData(DataFormats.FileDrop); DragHelper.ImageList_DragLeave(Handle); TreeNode dropNode = GetNodeAt(PointToClient(new Point(e.X, e.Y))); if (a != null) { string s = null; for (int i = 0; i < a.Length; i++) { s = a.GetValue(i).ToString(); this.BeginInvoke(m_DelegateOpenFile, s, dropNode); } } else { if (_dragNode != dropNode) { BaseWrapper drag = ((BaseWrapper)_dragNode); BaseWrapper drop = ((BaseWrapper)dropNode); ResourceNode dragging = drag.Resource; ResourceNode dropping = drop.Resource; if (dropping.Parent == null) { goto End; } bool ok = false; if (ModifierKeys == Keys.Shift) { ok = TryAddChild(dragging, dropping); } else { ok = TryDrop(dragging, dropping); } if (ok) { BaseWrapper b = FindResource(dragging); if (b != null) { b.EnsureVisible(); SelectedNode = b; } } End: _dragNode = null; _timer.Enabled = false; } } }
private void treeView1_DragLeave(object sender, EventArgs e) { DragHelper.ImageList_DragLeave(Handle); _timer.Enabled = false; }