【发布时间】:2013-12-24 21:28:25
【问题描述】:
我有以下代码成功地将树视图节点拖放到 WFA 中的文本框:
private void _MyTreeView_ItemDrag(object sender, ItemDragEventArgs e)
{
DoDragDrop(e.Item.ToString(), DragDropEffects.Copy);
}
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(System.String)))
{
textBox1.Text += (System.String)e.Data.GetData(typeof(System.String));
}
}
但我希望能够通过拖放操作做一些其他事情。
(1) 如果我拖到文本框的节点的 Text 属性值为“MyTreeNode”,那么出现在文本框中的值是“TreeNode: MyTreeNode”而不是“MyTreeNode”,即它添加了“TreeNode” : ' 在开始时。我该如何解决这个问题?
(2) 有什么办法可以防止根级别的所有TreeNodes被拖放?
(3) 使用上面的代码,当我拖放一个树节点时,树节点文本将附加到文本框中已经存在的文本的末尾。我是否能够添加一个“放置光标”(我不知道你会怎么称呼它)并将树节点放置在它实际放置的位置,即光标的位置?
【问题讨论】:
标签: c# winforms drag-and-drop treeview