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

📄 frmitembrowser.cs

📁 OPC CLIENT开发包
💻 CS
字号:
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System;
using System.Text;
internal partial class frmItemBrowser : System.Windows.Forms.Form
{

	private System.Windows.Forms.TreeNode root;
	private System.Windows.Forms.TreeNode last;

	private void AddItem_Click(object eventSender, System.EventArgs eventArgs)
	{
		Program.mainWindow.AddItem( txtItemName.Text.ToString());
	}

	private void CancelButton_Renamed_Click(object eventSender, System.EventArgs eventArgs)
	{
        this.DialogResult = System.Windows.Forms.DialogResult.OK;
		this.Close();
		this.Dispose();
	}
	private void Browse()
	{
		short NameSpace_Renamed=0;
        if (YFOPCSDK.OPC_GetNameSpace(Module1.ServerHandle, ref NameSpace_Renamed)!=0)
		{
			if (NameSpace_Renamed == 1)
			{
				BrowseItems();
			}
			else
			{
				BrowseBranch();
			}
		}
	}
	private void ChangePosition(System.Windows.Forms.TreeNode n)
	{
		byte[] buf = new byte[129];
		if ((n.Parent) is TreeNode)
		{
            ChangePosition( n.Parent);
			YFOPCSDK.OPC_ChangeBrowsePosition(Module1.ServerHandle, 2, n.Text);
		}
		else
		{
            YFOPCSDK.OPC_ChangeBrowsePosition(Module1.ServerHandle, 3, "");
		}
	}

    private void BrowerToTop(System.Windows.Forms.TreeNode x)
    {
        if (((x.Parent) is TreeNode))
        {
            YFOPCSDK.OPC_ChangeBrowsePosition(Module1.ServerHandle, 1, "");
            BrowerToTop(x.Parent);
        }
    }
	private void BrowseBranch()
	{
		int I=0;
		int Count=0;
		System.Windows.Forms.TreeNode n=null;
		System.Windows.Forms.TreeNode tmp=null;

        object ItemNames = new object[0];
		if (TreeView1.SelectedNode.Text == "") return; 
		n = TreeView1.SelectedNode;
		ChangePosition(n);
		BrowseItems();
		if (n.GetNodeCount(false) == 0)
		{
            Count = YFOPCSDK.OPC_BrowseItems(Module1.ServerHandle, 1, "*", 0, 0,  ref ItemNames);
            object[] result = (object[])ItemNames;
			for (I = 0; I <= Count - 1; I++) {
	                tmp = TreeView1.Nodes.Find(n.Tag.ToString(), true)[0].Nodes.Add(n.Tag.ToString() + result[I].ToString(), result[I].ToString());
				    tmp.Tag = n.Tag + result[I].ToString();
			}
			n.Expand();
		}
		last = TreeView1.SelectedNode;
	}
	private void BrowseItems()
	{
    	int I;
		int Count;
        object ItemNames = new object[0];
		listItem.Items.Clear();
		if (TreeView1.SelectedNode.Text == "") return; 
        Count = YFOPCSDK.OPC_BrowseItems(Module1.ServerHandle, 2, "*", 0, 0, ref ItemNames);// ItemNames);
        object[] result = (object[])ItemNames;
		for (I = 0; I <= Count - 1; I++) {
			 listItem.Items.Add(result[I].ToString());
		}
	}

	private void Command1_Click(object eventSender, System.EventArgs eventArgs)
	{
		if (txtItemName.Text == "") return; // TODO: might not be correct. Was : Exit Sub
        frmItemStatus frm = new frmItemStatus();
		frm.ItemName = txtItemName.Text;
        if (frm.ShowDialog() == DialogResult.OK)
        {
            int i;
            for (i = 1; i <= Program.mainWindow.lvListView.Items.Count; i++)
                if (txtItemName.Text  == Module1.ItemArr[i].Name )
                    break;
            if (i <= Program.mainWindow.lvListView.Items.Count)
                if(frm.bActive.Checked )
                  YFOPCSDK.OPC_ActiveItem(Module1.ServerHandle, Module1.GroupHandle, i, 1);
                else
                  YFOPCSDK.OPC_ActiveItem(Module1.ServerHandle, Module1.GroupHandle, i, 0);
        }
	}

	private void frmItemBrowser_Load(object eventSender, System.EventArgs eventArgs)
	{
		root = TreeView1.Nodes.Add("Root", "Root");
		root.Tag = "Root";
		TreeView1.SelectedNode = root;
		BrowseBranch();

	}

	private void listItem_SelectedIndexChanged(object eventSender, System.EventArgs eventArgs)
	{
		byte[] FullName=new byte[128];
		if (listItem.SelectedIndex == -1) return; // TODO: might not be correct. Was : Exit Sub
		if (YFOPCSDK.OPC_GetItemFullName(Module1.ServerHandle, listItem.Items[listItem.SelectedIndex].ToString(), FullName, 127)!=0)
		{
            ASCIIEncoding encoding = new ASCIIEncoding();
            txtItemName.Text = encoding.GetString(FullName);
		}
	}


    private void TreeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
        TreeView1.SelectedNode = e.Node; 
		BrowerToTop(last);
		BrowseBranch();
    }

    private void listItem_MouseDoubleClick(object sender, MouseEventArgs e)
    {
        if (listItem.SelectedIndex == -1) return; 
        listItem_SelectedIndexChanged(listItem, new System.EventArgs());
        AddItem_Click(AddItem, new System.EventArgs());
    }

    private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {

    }
}

⌨️ 快捷键说明

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