我想存储来自 TreeNode.FullPath 的一些数据,然后我想重新扩展到目前为止的所有内容。有简单的方法吗?
多谢!
我有一个树数据结构,其中N个第一级子节点也有子节点.
例如:
我想知道哪个分支最深.如前面的例子所示
节点1 - 节点11-节点111-节点1111
具有四个级别的深度.
有什么建议吗?
谢谢!
这是一项家庭作业,我没有太多时间在上面,但是我知道一些答案,需要一点帮助
我想这样假设我们有:
1个节点----> 1级
2,3个节点----> 2级
3,4,5,6,7个节点----> 3级
4,5,6,.....,15个节点----> 4级
5,6,7,8,9,.....,31个节点----> 5级
从[min = X个节点到max = 2 ^ X-1个节点]的节点间隔,其中X代表级别
从现在开始我很困惑如何完成
如果我写:
rootNode.expand()
我只能访问此rootNode的子节点,但无法访问此rootNode的孙子节点.我要写:
rootNode.expandChildNodes()
为了实现它.
即使树倒塌,还有另一种获取孙子节点或更多子节点的方法吗?除了使用node.eachChild()功能?我试过了:
rootChildNode.firstChild
但它不起作用.
我有问题弄清楚这个问题是什么.我已经google了,并没有找到很多解决这个问题的方法.我找到的唯一"解决方案"是扩展然后崩溃最后一个节点.
this.Nodes[this.Nodes.Count - 1].Expand();
this.Nodes[this.Nodes.Count - 1].Collapse();
从这个屏幕截图中可以看出,最后一个节点被部分切断,暴露它的唯一方法是展开节点,这将导致TreeView正确地重新渲染自身.

我实际上是在TreeView中添加节点.我不知道这是否会影响结果,但我已将TreeView扩展到我自己的类,所以我可以添加一些属性和方法.
public class MyTreeView : TreeView
{
public void BuildTree()
{
    this.Nodes.Clear();
    foreach (TestSetFolder folder in Folders)
    {
         MyTreeNode node = new MyTreeNode();
         node.Name = folder.Name;
         node.Text = folder.Name;
         node.Tag = folder;
         node.FolderID = folder.NodeID;
         node.IsPopulated = false;
         this.Nodes.Add(node);
     }
 }
 }
这就是我将节点添加到列表的方式.有没有人对这个问题有一个干净的解决方案?
我有一个简单的Ext.tree.Panel,它使用ajax代理从Ext.data.TreeStore加载其数据.
展开treenode时的默认行为似乎是:
如何关闭缓存选项,以便它永远不会缓存(即始终从服务器检索)?
从Spark SQL 中TreeNode的定义:
abstract class TreeNode[BaseType <: TreeNode[BaseType]] extends Product {
  self: BaseType =>
  ...
}
这是什么说的亚型TreeNode和BaseType?什么是可以接受的?
如何将新子项插入C#WinForms中TreeView中的特定节点?
我一直在笨拙地刺穿TreeViews将近一个小时,我想像这样使用C#的TreeView:
treeView.getChildByName("bob").AddChild(new Node("bob's dog"));
这是我上次尝试的(我认为C#应该永远不会让我达到的毛茸茸程度):
tree.Nodes[item.name].Nodes.Add(new TreeNode("thing"));
不用说,它不起作用.
哦,这是一个懒惰的问题:你真的可以在这些节点中存储对象吗?或者TreeNode只支持字符串和诸如此类的东西?(在这种情况下我应该扩展TreeNode .. /叹气)
请帮忙,谢谢!
我有treenode,我想在treenode找到最深的孩子.如果有2个带有level 11&的子节点,level 13那么我需要将函数返回给我13.
我怎样才能做到这一点 ?
public int FindLevel(TreeNode oParentNode)
{
   counter++;
  forech(TreeNode oSubNode in oParentNode.Nodes)
  {
    FindLevel(oParentNode);
  }
 return Counter;
}
我坚持认为在一个窗口多种形式一个Windows应用程序(form1,form2,form3)。我在治疗其他form2与form3此刻的黑盒子。在其中,form1我有一个TreeView,并且正在该TreeView中实现拖放功能。
如何防止在form1控件之外的放置?
我正在实现3个事件处理程序:
private void treeView_ItemDrag (...)
{
    DoDragDrop(e.Item, DragDropEffects.Move);
} 
private void treeView_DragEvent (...) 
{
    e.Effect = DragDropEffects.Move;
}
private void treeView_DragDrop (...)
{
    //the node move logic here
}
form2并form3在它们之间具有拖放关系,因此,当我默认将节点从中form1拖入时form3,它允许移动(错误)。我希望能够从form1控制代码中防止这种情况。
如何防止掉落在form1控件之外?我已经看过_DragLeave事件,但不确定如何在没有DragEventArgs的情况下控制操作。