// This example shows how the current node and selected nodes can be persisted between dialog invocations. using System.Windows.Forms; using OpcLabs.EasyOpc.UA.Forms.Browsing; namespace UAFormsDocExamples._UABrowseDialog { static partial class ShowDialog { public static void SelectionDescriptors(IWin32Window owner) { // The variables that persist the current and selected nodes. var currentNodeDescriptor = new UABrowseNodeDescriptor(); var selectionDescriptors = new UABrowseNodeDescriptorCollection(); // The initial current node (optional). currentNodeDescriptor.EndpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; // Repeatedly show the dialog until the user cancels it. do { var browseDialog = new UABrowseDialog(); browseDialog.Mode.MultiSelect = true; // Set the dialog inputs from the persistence variables. browseDialog.InputsOutputs.CurrentNodeDescriptor = currentNodeDescriptor; browseDialog.InputsOutputs.SelectionDescriptors.Clear(); foreach (UABrowseNodeDescriptor browseNodeDescriptor in selectionDescriptors) browseDialog.InputsOutputs.SelectionDescriptors.Add(browseNodeDescriptor); DialogResult dialogResult = browseDialog.ShowDialog(owner); if (dialogResult != DialogResult.OK) break; // Update the persistence variables with the dialog output. currentNodeDescriptor = browseDialog.InputsOutputs.CurrentNodeDescriptor; selectionDescriptors.Clear(); foreach (UABrowseNodeDescriptor browseNodeDescriptor in browseDialog.InputsOutputs.SelectionDescriptors) selectionDescriptors.Add(browseNodeDescriptor); } while (true); } } }
# This example shows how the current node and selected nodes can be persisted between dialog invocations. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from System.Windows.Forms import * from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.Forms.Browsing import * # The variables that persist the current and selected nodes. currentNodeDescriptor = UABrowseNodeDescriptor() selectionDescriptors = UABrowseNodeDescriptorCollection() # The initial current node (optional). currentNodeDescriptor.EndpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:51210/UA/SampleServer') # Repeatedly show the dialog until the user cancels it. while True: browseDialog = UABrowseDialog() browseDialog.Mode.MultiSelect = True # Set the dialog inputs from the persistence variables. browseDialog.InputsOutputs.CurrentNodeDescriptor = currentNodeDescriptor browseDialog.InputsOutputs.SelectionDescriptors.Clear() for browseNodeDescriptor in selectionDescriptors: browseDialog.InputsOutputs.SelectionDescriptors.Add(browseNodeDescriptor) dialogResult = browseDialog.ShowDialog() print(dialogResult) if dialogResult != DialogResult.OK: break # Update the persistence variables with the dialog output. currentNodeDescriptor = browseDialog.InputsOutputs.CurrentNodeDescriptor selectionDescriptors.Clear() for browseNodeDescriptor in browseDialog.InputsOutputs.SelectionDescriptors: selectionDescriptors.Add(browseNodeDescriptor) print('Finished.')
Rem This example shows how the current node and selected nodes can be persisted between dialog invocations. Option Explicit Const DialogResult_OK = 1 ' The variables that persist the current and selected nodes. Dim CurrentNodeDescriptor: Set CurrentNodeDescriptor = CreateObject("OpcLabs.EasyOpc.UA.Forms.Browsing.UABrowseNodeDescriptor") Dim SelectionDescriptors: Set SelectionDescriptors = CreateObject("OpcLabs.EasyOpc.UA.Forms.Browsing.UABrowseNodeDescriptorCollection") ' The initial current node (optional). CurrentNodeDescriptor.EndpointDescriptor.UrlString = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" ' Repeatedly show the dialog until the user cancels it. Do Dim BrowseDialog: Set BrowseDialog = CreateObject("OpcLabs.EasyOpc.UA.Forms.Browsing.UABrowseDialog") BrowseDialog.Mode.MultiSelect = True ' Set the dialog inputs from the persistence variables. Set BrowseDialog.InputsOutputs.CurrentNodeDescriptor = CurrentNodeDescriptor BrowseDialog.InputsOutputs.SelectionDescriptors.Clear Dim BrowseNodeDescriptor: For Each BrowseNodeDescriptor In SelectionDescriptors BrowseDialog.InputsOutputs.SelectionDescriptors.Add BrowseNodeDescriptor Next Dim dialogResult1: dialogResult1 = BrowseDialog.ShowDialog If dialogResult1 <> DialogResult_OK Then Exit Do End If ' Update the persistence variables with the dialog output. Set CurrentNodeDescriptor = BrowseDialog.InputsOutputs.CurrentNodeDescriptor selectionDescriptors.Clear For Each BrowseNodeDescriptor In BrowseDialog.InputsOutputs.SelectionDescriptors SelectionDescriptors.Add BrowseNodeDescriptor Next Loop While True
Copyright © 2004-2023 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base. Technical support: Online Forums, FAQ.