将项目从 Treeview 拖动到 Windows 窗体上的列表框 (C#)

Drag a item from Treeview to ListBox on Windows Forms (C#)

我正在使用文件资源管理器 TreeView 以 Windows 形式编写应用程序,我需要一种方法来使用拖放将字符串中的 Node.FullPath 获取到列表框。

昨天我发现了这个问题:

C# Drag & drop from listbox to treeview

但我需要完全相反的方法,也许是一种方法来保存 Shitf 并使用多个节点进行选择以继续拖放它们

拖放是同一个概念,有我用来实现它的代码。

    private void tvDiretorios2_ItemDrag(object sender, ItemDragEventArgs e)
    {
        //pega os Selecionados e colocar em uma lista
        List<string> listaSelecionados = new List<string>();
        foreach (TreeNode tN in tvDiretorios.SelectedNodes)
        {
            listaSelecionados.Add(tN.FullPath.ToString());
        }
        DoDragDrop(listaSelecionados, DragDropEffects.Move);
    }

    private void tvDiretorios2_DragOver(object sender, DragEventArgs e)
    {
        //Depois de DoDragDrop Existi- 2°Passo. Confirma que o que foi puxado é uma lista
        if (e.Data.GetDataPresent(typeof(List<string>)))
            e.Effect = DragDropEffects.Move;
        else
            e.Effect = DragDropEffects.None;
    }




    /** EVENTOS DROP DA LISTA */
    private void lbConvertidas_DragEnter(object sender, DragEventArgs e)
    {
        //Determina se o o objeto pode ser arrastado para o lbConvertidas
        if(e.Data.GetDataPresent(typeof(List<string>)))
            e.Effect = DragDropEffects.Move;
        else
            e.Effect = DragDropEffects.None;
    }

    private void lbConvertidas_DragDrop(object sender, DragEventArgs e)
    {
        //Toma alguma ação quando ele for solto
        //Importar(); -- Ação Principal
        var lista = e.Data.GetData(typeof(List<string>)) as List<string>;
        if (lista != null)
            lbConvertidas.Items.AddRange(lista.ToArray()); //será convertido 
    }

但是为了 select 个节点,我使用了一个替代的 TreeView 组件,源 link 在下面。

http://www.arstdesign.com/articles/treeviewms.html

我创建了一个简单的检查例程,只是为了知道我的方向是正确的。

 private void BuscarSelecionados()
    {
        foreach (TreeNode tN in tvDiretorios2.SelectedNodes)
        {
            MessageBox.Show(tN.FullPath.ToString(), "Atenção");
        }
    }

关键是使用这个替代的 TreeNode 组件。

无论如何感谢那些试图提供帮助的人......以及那些你没有提供帮助的人......