0

ドラッグ アンド ドロップをサポートする WINDOWS APP 用のツリービュー コンポーネントを推奨できる人はいますか (独自のノード間 - コンテンツ管理システムがページを再配置するためのものです)。オープン ソースか商用かは気にしないでください (ただし、Telerik のツリービューにはまったく拡張できません)。恥..

他のオプションはありますか?ありがとう。

4

1 に答える 1

2

おそらくあなたはこのようなものを探しています

1.新しい Winforms プロジェクトを開始します。ツリービュー コントロールをフォームにドラッグします。

2. TreeView Node コレクション プロパティを使用して、ツリービューにさまざまなノードを入力します。

3. プロパティ ウィンドウに移動し、AllowDropプロパティをtrueに設定します。

4.最後に、ツリー ビューの 3 つの異なるイベントのコードを記述します。3 つのイベントは、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 に答える