/// <summary> /// 初始化树数据 /// </summary> public void LoadTreeData() { this.BeginUpdate(); ///只有右侧树才会加载_dicNodeIndexs if (TreeMode == TreeMode.General) { _dicNodeIndexs.Clear(); } SdsiteXmlDocument sdsiteDoc = Service.Sdsite.CurrentDocument; ///添加TreeView的根节点:SiteManagerNode if (this.TreeMode == TreeMode.General) { SiteManagerNode = new SiteManagerNode(Path.GetDirectoryName(SdsiteFilePath)); AddRootNodeToTree(SiteManagerNode); SiteManagerNode.LoadData(); SiteManagerNode.Expand(); this.ContextMenuStrip = TreeContextMenuStrip.CreateForTreeView(this); } else { SelectTreeRootChanNode = new RootChannelNode(Service.Sdsite.CurrentDocument.RootChannel); this.Nodes.Clear(); this.Nodes.Add(SelectTreeRootChanNode); SelectTreeRootChanNode.LoadData(); } this.EndUpdate(); }
/// <summary> /// 添加根节点的内部方法 /// </summary> private void AddRootNodeToTree(SiteManagerNode node) { ///清空节点 this.Nodes.Clear(); ///设置图标 //node.SelectedImageKey = node.ImageKey = node.CollapseImageKey; ///添加到树中 this.Nodes.Add(node); }
protected override void OnAfterCollapse(TreeViewEventArgs e) { BaseTreeNode myNode = e.Node as BaseTreeNode; ///若是SiteManagerNode(即根节点)折叠,则再次展开,即不允许其折叠 if (myNode == SiteManagerNode) { SiteManagerNode.Expand(); return; } ///若ImageKey不等于ExpandImageKey,则认为它的图标正在表示特殊用途,那么不更换图标 if (myNode.ImageKey == myNode.ExpandImageKey) { myNode.ImageKey = myNode.FactImageKey; myNode.SelectedImageKey = myNode.ImageKey; } base.OnAfterCollapse(e); }