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

📄 frmitembrowser.vb

📁 OPC CLIENT开发包
💻 VB
字号:
Option Strict Off
Option Explicit On
Friend Class frmItemBrowser
	Inherits System.Windows.Forms.Form
	
	Private root, last As System.Windows.Forms.TreeNode
	
	Private Sub AddItem_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles AddItem.Click
		frmMain.AddItem(txtItemName.Text)
	End Sub
	
	Private Sub CancelButton_Renamed_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles CancelButton_Renamed.Click
        Me.DialogResult = Windows.Forms.DialogResult.OK
        Me.Close()
        Me.Dispose()
    End Sub

	Private Sub Browse()
        Dim NameSpace_Renamed As Short
        If OPC_GetNameSpace(ServerHandle, NameSpace_Renamed) Then
            If NameSpace_Renamed = 1 Then
                BrowseItems()
            Else
                BrowseBranch()
            End If
        End If
    End Sub

	Private Sub ChangePosition(ByRef n As System.Windows.Forms.TreeNode)
		Dim buf(128) As Byte
        If TypeOf (n.Parent) Is TreeNode Then '.root.Text <> n.Text
            ChangePosition(n.Parent)
            OPC_ChangeBrowsePosition(ServerHandle, 2, n.Text)
        Else
            OPC_ChangeBrowsePosition(ServerHandle, 3, "")
        End If
	End Sub
	Private Sub BrowseBranch()
		Dim I As Object
		Dim Count As Short
        Dim n, tmp As System.Windows.Forms.TreeNode 'p,
		
		Dim ItemNames As Object
        If TreeView1.SelectedNode.Text = "" Then Return
		n = TreeView1.SelectedNode
		ChangePosition(n)
		BrowseItems()
		If n.GetNodeCount(False) = 0 Then
            Count = OPC_BrowseItems(ServerHandle, 1, "*", 0, 0, ItemNames)
			For I = 0 To Count - 1
                tmp = TreeView1.Nodes.Find(n.Tag, True)(0).Nodes.Add(n.Tag & ItemNames(I), ItemNames(I))
                tmp.Tag = n.Tag & ItemNames(I)
			Next 
			n.Expand()
		End If
		last = TreeView1.SelectedNode
    End Sub

	Private Sub BrowseItems()
		Dim I As Object
		Dim Count As Short
		Dim ItemNames As Object
		
		listItem.Items.Clear()
        If TreeView1.SelectedNode.Text = "" Then Return
        Count = OPC_BrowseItems(ServerHandle, 2, "*", 0, 0, ItemNames)
		For I = 0 To Count - 1
            listItem.Items.Add(ItemNames(I))
		Next 
    End Sub
	
	Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
		If txtItemName.Text = "" Then Exit Sub
		frmItemStatus.ItemName = txtItemName.Text

        If frmItemStatus.ShowDialog() = Windows.Forms.DialogResult.OK Then
            Dim i As Integer
            For i = 1 To frmMain.lvListView.Items.Count
                If txtItemName.Text = ItemArr(i).Name Then
                    Exit For
                End If
            Next
            If (i <= frmMain.lvListView.Items.Count) Then
                If (frmItemStatus.bActive.Checked) Then
                    YFOPCSDK.OPC_ActiveItem(ServerHandle, GroupHandle, i, 1)
                Else
                    YFOPCSDK.OPC_ActiveItem(ServerHandle, GroupHandle, i, 0)
                End If
            End If
        End If
    End Sub
	
	Private Sub frmItemBrowser_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
		root = TreeView1.Nodes.Add("Root", "Root")
		root.Tag = "Root"
		TreeView1.SelectedNode = root
		BrowseBranch()
		
	End Sub
	
    Private Sub listItem_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles listItem.SelectedIndexChanged
        Dim FullName As String
        FullName = New String(New Char, 128)
        If listItem.SelectedIndex = -1 Then Exit Sub
        If OPC_GetItemFullName(ServerHandle, listItem.Items(listItem.SelectedIndex).ToString(), FullName, 127) Then
            txtItemName.Text = FullName
        End If
    End Sub
	
	Private Sub listItem_DoubleClick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles listItem.DoubleClick
		If listItem.SelectedIndex = -1 Then Exit Sub
		listItem_SelectedIndexChanged(listItem, New System.EventArgs())
		AddItem_Click(AddItem, New System.EventArgs())
	End Sub
	Private Sub BrowerToTop(ByRef x As System.Windows.Forms.TreeNode)
        If (TypeOf (x.Parent) Is TreeNode) Then
            OPC_ChangeBrowsePosition(ServerHandle, 1, "")
            BrowerToTop(x.Parent)
        End If
	End Sub
	Private Sub TreeView1_NodeClick(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
        TreeView1.SelectedNode = eventArgs.Node
        BrowerToTop(last)
        BrowseBranch()
    End Sub

    Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
        'Dim Node As System.Windows.Forms.TreeNode = e.Node
        'BrowerToTop(last)
        'BrowseBranch()
    End Sub
End Class

⌨️ 快捷键说明

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