📄 frmitembrowser.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 + -