Ejemplo n.º 1
0
        private void TreeView_DragOver(object sender, DragEventArgs e)
        {
            TreeView            tree        = (TreeView)sender;
            Point               targetPoint = tree.PointToClient(new Point(e.X, e.Y));
            TreeNode            targetNode  = tree.GetNodeAt(targetPoint);
            DragDropInformation info        = (DragDropInformation)e.Data.GetData(typeof(DragDropInformation));

            if (info == null)
            {
                return;
            }
            TreeViewDragDropHelper.ImageList_DragMove(targetPoint.X, targetPoint.Y);
            //TreeViewDragDropHelper.ImageList_DragMove(e.X, e.Y);
            TreeNode sourceNode = info.SourceNode;

            if (info.Client.IsDropAllowed(sourceNode, targetNode))
            {
                TreeViewDragDropHelper.ImageList_DragShowNolock(false);
                tree.SelectedNode = targetNode;
                e.Effect          = e.AllowedEffect;
                TreeViewDragDropHelper.ImageList_DragShowNolock(true);
            }
            else
            {
                TreeViewDragDropHelper.ImageList_DragShowNolock(false);
                tree.SelectedNode = sourceNode;
                e.Effect          = DragDropEffects.None;
                TreeViewDragDropHelper.ImageList_DragShowNolock(true);
            }
        }
Ejemplo n.º 2
0
            private void ScrollDown(Point pt)
            {
                TreeNode visibleNode = this.TreeView.GetNodeAt(pt);

                if (visibleNode == null)
                {
                    return;
                }

                TreeNode showNode = visibleNode.NextVisibleNode;

                if (showNode == null)
                {
                    showNode = visibleNode.NextNode;
                    if (showNode == null)
                    {
                        showNode = visibleNode.Parent;
                        if (showNode != null)
                        {
                            showNode = showNode.NextNode;
                        }
                    }
                }

                if (showNode != null)
                {
                    TreeViewDragDropHelper.ImageList_DragShowNolock(false);
                    showNode.EnsureVisible();
                    this.TreeView.Invalidate();
                    TreeViewDragDropHelper.ImageList_DragShowNolock(true);
                }
            }
Ejemplo n.º 3
0
        private void TreeView_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = e.AllowedEffect;
            TreeView tree        = (TreeView)sender;
            Point    targetPoint = tree.PointToClient(new Point(e.X, e.Y));

            TreeViewDragDropHelper.ImageList_DragEnter(((TreeView)sender).Handle, targetPoint.X, targetPoint.Y);
            //this.ScrollTimer.Enabled = true;
        }
Ejemplo n.º 4
0
        public void DoDragDrop(IDragDropClient client, TreeNode node, DragDropEffects effects)
        {
            if (client == null)
            {
                throw new ArgumentNullException("client");
            }
            if (node == null)
            {
                throw new ArgumentNullException("node");
            }

            using (ImageList imgList = this.CreateImageList(node))
            {
                TreeViewDragDropHelper.ImageList_BeginDrag(imgList.Handle, 0, 0, 0);

                try
                {
                    node.TreeView.DragDrop  += new DragEventHandler(this.TreeView_DragDrop);
                    node.TreeView.DragEnter += new DragEventHandler(this.TreeView_DragEnter);
                    node.TreeView.DragLeave += new EventHandler(this.TreeView_DragLeave);
                    node.TreeView.DragOver  += new DragEventHandler(this.TreeView_DragOver);

                    try
                    {
                        using (new ScrollHelper(node.TreeView))
                            node.TreeView.DoDragDrop(new DragDropInformation(node, client), effects);
                    }
                    finally
                    {
                        TreeView tree = node.TreeView;
                        if (tree != null)
                        {
                            tree.DragDrop  -= new DragEventHandler(this.TreeView_DragDrop);
                            tree.DragEnter -= new DragEventHandler(this.TreeView_DragEnter);
                            tree.DragLeave -= new EventHandler(this.TreeView_DragLeave);
                            tree.DragOver  -= new DragEventHandler(this.TreeView_DragOver);
                        }
                    }
                }
                finally
                {
                    TreeViewDragDropHelper.ImageList_EndDrag();
                }
            }
        }
Ejemplo n.º 5
0
 private void TreeView_DragLeave(object sender, EventArgs e)
 {
     //this.ScrollTimer.Enabled = false;
     TreeViewDragDropHelper.ImageList_DragLeave(((TreeView)sender).Handle);
 }