OPCBrowser遍歷構建Tree


  最近在弄一個OPC客戶端,發現網上的關於OPC的資料相對比較少。我也花了幾天時間研究了下,有點小心得拿出來給大家分享下。

  OPCBrowser遍歷構建Tree:

private void BuildTree(TreeNode node)
        {
            TreeNode treeNode;
            Global.KeyBrowser.ShowBranches();
            foreach (object Branch in Global.KeyBrowser)
            {
                if (node == null)
                {
                    treeNode = this.tvBrowser.Nodes.Add(Branch.ToString());
                }
                else
                {
                    treeNode = node.Nodes.Add(Branch.ToString());
                }
                Global.KeyBrowser.MoveDown(Branch.ToString());
                BuildTree(treeNode);
                Global.KeyBrowser.MoveUp();
            }
        }

點擊Tree節點列表所有OPCBrowser下的枝節點下的葉節點:

private void tvBrowser_AfterSelect(object sender, TreeViewEventArgs e)
        {
            //獲取葉節點
            lBoxItem.Items.Clear();
            if (tvBrowser.SelectedNode != null)
            {
                string path = tvBrowser.SelectedNode.FullPath;
                Array Branches = path.Split('\\');
                Global.KeyBrowser.MoveTo(ref Branches);
                Global.KeyBrowser.ShowLeafs(false);
                foreach (object item in Global.KeyBrowser)
                {
                    lBoxItem.Items.Add(item);
                }
                Global.KeyBrowser.ShowLeafs(false);
                Global.KeyBrowser.MoveToRoot();
            }
        }

這邊要注意是一下這句:

Global.KeyBrowser.ShowLeafs(false);

當參數為false的時候只讀取當前枝節點下只屬於該枝節點的葉節點;為True時則是讀取該枝節點下包括所有子枝節點對應的所有葉節點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM