将项目从 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 组件。
无论如何感谢那些试图提供帮助的人......以及那些你没有提供帮助的人......
我正在使用文件资源管理器 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 组件。
无论如何感谢那些试图提供帮助的人......以及那些你没有提供帮助的人......