0

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

还有其他选择吗?谢谢。

4

1 回答 1

2

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

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

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

3.转到属性窗口,将AllowDrop属性设置为true

4.最后为tree view的三个不同事件编写代码。这三个事件分别是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();
                }
            }
        }
    }
}
于 2012-05-29T16:06:43.180 回答