如何使用树视图控件以支持在 Windows 窗体中拖放



任何人都可以为WINDOWS APP推荐一个支持拖放的树视图组件(在它自己的节点之间 - 它用于内容管理系统来重新设置页面)。不介意它是开源的还是商业的(虽然不能完全延伸到 Telerik 的树视图)。羞耻。。

还有其他选择吗?谢谢。

可能你正在寻找这样的东西

1.启动一个新的Winforms项目。在窗体上拖动树视图控件。

2.通过 TreeView 节点集合属性使用不同的节点填充树视图。

3.转到属性窗口,将"允许丢弃"属性设置为 true

4.最后为树视图的三个不同事件编写代码。三个事件将是ItemDrag,DragEnter和DragDrop。

using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void OnDragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Move;
        }
        private void OnItemDrag(object sender, ItemDragEventArgs e)
        {
            DoDragDrop(e.Item, DragDropEffects.Move);
        }
        private void OnDragDrop(object sender, DragEventArgs e)
        {
            TreeNode NewNode;
            if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))
            {
                Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));
                TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt);
                NewNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");
                if (DestinationNode.TreeView == NewNode.TreeView)
                {
                    DestinationNode.Nodes.Add((TreeNode)NewNode.Clone());
                    DestinationNode.Expand();
                    NewNode.Remove();
                }
            }
        }
    }
}

最新更新