WinForm自定义TreeView控件有关问题

WinForm自定义TreeView控件问题
预期达到的效果:
  1. TreeView.Nodes 拥有所有的添加进去的节点集合;

  2. TreeView 展示过程中, 所有节点集合中有个别符合某些特定条件的节点不展示出来;
  如:
 
C# code
       TreeNode tn = new TreeNode("1");
       tn.Nodes.Add(new TreeNode("2"));
       tn.Nodes[0].Nodes.Add(new TreeNode("3"));
       this.treeview1.Nodes.Add(tn);

   
  3. 展示时,treeview1只显示首节点["1"], 下面的子节点["2"]及其子节点不展示, 仅当子节点["2"]显示时,才显示加减符号,但是 treeview1.Nodes[0].Nodes[0].Nodes[0]是可以获取到节点["3"]的..

  4. 当添加节点的子节点时, TreeView 会触发到哪些事件?



------解决方案--------------------
这种需求,如果不想变通,你只有自己做一个了。