⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 items.cs

📁 OPC工具包是用来简化OPC规范服务器/客户端开发的工具包
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Collections;

namespace DAC_CSDEMO
{
    public partial class Items : Form
    {
        public Items()
        {
            InitializeComponent();
        }

        private void Items_Load(object sender, EventArgs e)
        {
            AddRootNode();
        }
        private void AddRootNode()
        {
            Form1.ASDAC_GetNameSpace(Form1.m_ServerHandle, ref m_NameSpace);
            TreeNode node=treeView1.Nodes.Add("ROOT");
            if (m_NameSpace == 1)
            {
                BrowseBranch(node);
            }
            else
            {
                BrowseLeaves();
            }
           
        }
        private void BrowseBranch(TreeNode node)
        {
            if(node.GetNodeCount(false)==0)
            {
                object tagNames;
                tagNames = null;
                uint count = Form1.ASDAC_BrowseItems(Form1.m_ServerHandle,1,"*",0,0,ref tagNames);
                for(int I=0;I<count; I++)
                {
                    string tagName;
                    tagName = ((string[])tagNames)[I];
                    node.Nodes.Add(tagName);
                }
            }
        }
        private void ChangeBrowsePosition(TreeNode newNode)
        {
            ArrayList tagNames=new ArrayList();
            TreeNode node;
            node = newNode;
            while (Form1.ASDAC_ChangeBrowsePosition(Form1.m_ServerHandle, 1, "")) ;
            while (node.Parent!=null)
            {
                tagNames.Insert(0, node.Text);
                node = node.Parent;
            }
            foreach (string TagName in tagNames)
            {
                Form1.ASDAC_ChangeBrowsePosition(Form1.m_ServerHandle, 2, TagName);
            }
            BrowseBranch(newNode);
            BrowseLeaves();
        }
        private void BrowseLeaves()
        {
            object tagNames;
            tagNames = null;
            uint count = Form1.ASDAC_BrowseItems(Form1.m_ServerHandle, 2, "*", Convert.ToUInt16(VarEnum.VT_EMPTY), 0, ref tagNames);
            listBox1.Items.Clear();
            for(int I=0;I<count; I++)
            {
                string tagName;
                tagName = ((string[])tagNames)[I];
                listBox1.Items.Add(tagName);
            }
        }
        private ushort m_NameSpace;

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
           
            if (m_NameSpace == 0) return;
            if(treeView1.SelectedNode!=null) 
            {
                ChangeBrowsePosition(treeView1.SelectedNode);
            }
            
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(listBox1.SelectedItem==null) return;
            string tagName=listBox1.SelectedItem.ToString();
            StringBuilder tagFullName=new StringBuilder(128);
            Form1.ASDAC_GetItemFullName(Form1.m_ServerHandle, tagName, tagFullName, 128);
            textBox1.Text = tagFullName.ToString();
        }

        private void Cancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Add_Click(object sender, EventArgs e)
        {
            Form1.AddItem(textBox1.Text);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -