private void AppendTreeNode(IProjectTree pTree, TreeNode pParentNode, Guid nodeObjectGuid) { TreeNode myNode = null; int iCheckState; string nodeName = string.Empty; if (pTree.IsGroup(nodeObjectGuid)) { nodeName = pTree.GetItemName(nodeObjectGuid); if (this.treeView1.Nodes.Count == 0 || pParentNode == null) { TreeNode node = new TreeNode(nodeName, 0, 0); node.Tag = nodeObjectGuid; this.treeView1.Nodes.Add(node); int count = this.treeView1.Nodes.Count; myNode = this.treeView1.Nodes[count - 1]; } else { TreeNode node = new TreeNode(nodeName, 0, 0); node.Tag = nodeObjectGuid; pParentNode.Nodes.Add(node); int count = pParentNode.Nodes.Count; myNode = pParentNode.Nodes[count - 1]; } LoopSubNode(myNode, pTree, nodeObjectGuid); } else { nodeName = pTree.GetItemName(nodeObjectGuid); if (this.treeView1.Nodes.Count == 0 || pParentNode == null) { TreeNode node = new TreeNode(nodeName, 1, 1); node.Tag = nodeObjectGuid; this.treeView1.Nodes.Add(node); int count = this.treeView1.Nodes.Count; myNode = this.treeView1.Nodes[count - 1]; } else { TreeNode node = new TreeNode(nodeName, 1, 1); node.Tag = nodeObjectGuid; pParentNode.Nodes.Add(node); int count = pParentNode.Nodes.Count; myNode = pParentNode.Nodes[count - 1]; } } iCheckState = pTree.GetVisibility(nodeObjectGuid); SetNodeCheckState(myNode, iCheckState); }