'Declaration
Public Event BrowseFailure As FailureEventHandler
'Usage
Dim instance As BrowseControl Dim handler As FailureEventHandler AddHandler instance.BrowseFailure, handler
public event FailureEventHandler BrowseFailure
public: event FailureEventHandler^ BrowseFailure
Event Data
The event handler receives an argument of type FailureEventArgs containing data related to this event. The following FailureEventArgs properties provide information specific to this event.
Property | Description |
---|---|
Exception | Contains the Exception carried by the event arguments. |
Example
.NET
.NET
// This example shows how to allow browsing for an OPC Data Access node by placing a browsing control on the form. using OpcLabs.EasyOpc.Forms.Browsing; using System; using System.Windows.Forms; using OpcLabs.BaseLib; namespace FormsDocExamples._OpcBrowseControl { public partial class UsageForm : Form { public UsageForm() { InitializeComponent(); } private void getOutputsButton_Click(object sender, EventArgs e) { // Obtain the current node element. OpcBrowseNodeElement currentNodeElement = opcBrowseControl1.Outputs.CurrentNodeElement; // Display the present parts of the current node element in the outputs text text box. outputsTextBox.Text = ""; if (!(currentNodeElement.ComputerElement is null)) outputsTextBox.Text += $"{nameof(OpcBrowseNodeElement.ComputerElement)}: {currentNodeElement.ComputerElement}\r\n"; if (!(currentNodeElement.ServerElement is null)) outputsTextBox.Text += $"{nameof(OpcBrowseNodeElement.ServerElement)}: {currentNodeElement.ServerElement}\r\n"; if (!(currentNodeElement.DANodeElement is null)) outputsTextBox.Text += $"{nameof(OpcBrowseNodeElement.DANodeElement)}: {currentNodeElement.DANodeElement}\r\n"; } private void opcBrowseControl1_BrowseFailure(object sender, FailureEventArgs e) { // Append the event name and its arguments to the browsing events text box. browsingEventsTextBox.Text += $"{nameof(OpcBrowseControl.BrowseFailure)}: {e}\r\n"; } private void opcBrowseControl1_CurrentNodeChanged(object sender, EventArgs e) { // Append the event name and the current node element to the browsing events text box. browsingEventsTextBox.Text += $"{nameof(OpcBrowseControl.CurrentNodeChanged)}; {opcBrowseControl1.Outputs.CurrentNodeElement}\r\n"; } private void opcBrowseControl1_NodeDoubleClick(object sender, EventArgs e) { // Append the event name to the browsing events text box. browsingEventsTextBox.Text += $"{nameof(OpcBrowseControl.NodeDoubleClick)}\r\n"; } private void opcBrowseControl1_SelectionChanged(object sender, EventArgs e) { // Append the event name to the browsing events text box. browsingEventsTextBox.Text += $"{nameof(OpcBrowseControl.SelectionChanged)}\r\n"; } private void setInputsButton_Click(object sender, EventArgs e) { // Set the current node to a pre-defined OPC DA item on our server. opcBrowseControl1.InputsOutputs.CurrentNodeDescriptor.ServerDescriptor = "OPCLabs.KitServer.2"; opcBrowseControl1.InputsOutputs.CurrentNodeDescriptor.DANodeDescriptor = "Demo.Ramp"; } } }
namespace FormsDocExamples._OpcBrowseControl { partial class UsageForm { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.opcBrowseControl1 = new OpcLabs.EasyOpc.Forms.Browsing.OpcBrowseControl(); this.setInputsButton = new System.Windows.Forms.Button(); this.getOutputsButton = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.browsingEventsTextBox = new System.Windows.Forms.TextBox(); this.outputsTextBox = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.opcBrowseControl1)).BeginInit(); this.SuspendLayout(); // // opcBrowseControl1 // this.opcBrowseControl1.Location = new System.Drawing.Point(13, 42); this.opcBrowseControl1.MinimumSize = new System.Drawing.Size(135, 150); this.opcBrowseControl1.Name = "opcBrowseControl1"; this.opcBrowseControl1.Size = new System.Drawing.Size(450, 300); this.opcBrowseControl1.TabIndex = 0; this.opcBrowseControl1.BrowseFailure += new OpcLabs.BaseLib.FailureEventHandler(this.opcBrowseControl1_BrowseFailure); this.opcBrowseControl1.CurrentNodeChanged += new System.EventHandler(this.opcBrowseControl1_CurrentNodeChanged); this.opcBrowseControl1.NodeDoubleClick += new System.EventHandler(this.opcBrowseControl1_NodeDoubleClick); this.opcBrowseControl1.SelectionChanged += new System.EventHandler(this.opcBrowseControl1_SelectionChanged); // // setInputsButton // this.setInputsButton.Location = new System.Drawing.Point(13, 13); this.setInputsButton.Name = "setInputsButton"; this.setInputsButton.Size = new System.Drawing.Size(75, 23); this.setInputsButton.TabIndex = 1; this.setInputsButton.Text = "&Set inputs"; this.setInputsButton.UseVisualStyleBackColor = true; this.setInputsButton.Click += new System.EventHandler(this.setInputsButton_Click); // // getOutputsButton // this.getOutputsButton.Location = new System.Drawing.Point(13, 349); this.getOutputsButton.Name = "getOutputsButton"; this.getOutputsButton.Size = new System.Drawing.Size(75, 23); this.getOutputsButton.TabIndex = 2; this.getOutputsButton.Text = "&Get outputs"; this.getOutputsButton.UseVisualStyleBackColor = true; this.getOutputsButton.Click += new System.EventHandler(this.getOutputsButton_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(479, 42); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(88, 13); this.label1.TabIndex = 3; this.label1.Text = "Browsing &events:"; // // browsingEventsTextBox // this.browsingEventsTextBox.Location = new System.Drawing.Point(482, 59); this.browsingEventsTextBox.Multiline = true; this.browsingEventsTextBox.Name = "browsingEventsTextBox"; this.browsingEventsTextBox.ReadOnly = true; this.browsingEventsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.browsingEventsTextBox.Size = new System.Drawing.Size(482, 283); this.browsingEventsTextBox.TabIndex = 4; // // outputsTextBox // this.outputsTextBox.Location = new System.Drawing.Point(13, 379); this.outputsTextBox.Multiline = true; this.outputsTextBox.Name = "outputsTextBox"; this.outputsTextBox.ReadOnly = true; this.outputsTextBox.Size = new System.Drawing.Size(951, 68); this.outputsTextBox.TabIndex = 5; // // UsageForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(976, 450); this.Controls.Add(this.outputsTextBox); this.Controls.Add(this.browsingEventsTextBox); this.Controls.Add(this.label1); this.Controls.Add(this.getOutputsButton); this.Controls.Add(this.setInputsButton); this.Controls.Add(this.opcBrowseControl1); this.Name = "UsageForm"; this.Text = "Usage"; ((System.ComponentModel.ISupportInitialize)(this.opcBrowseControl1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private OpcLabs.EasyOpc.Forms.Browsing.OpcBrowseControl opcBrowseControl1; private System.Windows.Forms.Button setInputsButton; private System.Windows.Forms.Button getOutputsButton; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox browsingEventsTextBox; private System.Windows.Forms.TextBox outputsTextBox; } }
// This example shows how to allow browsing for an OPC Unified Architecture node by placing a browsing control on the form. using System; using System.Windows.Forms; using OpcLabs.BaseLib; using OpcLabs.EasyOpc.UA.Forms.Browsing; namespace UAFormsDocExamples._UABrowseControl { public partial class UsageForm : Form { public UsageForm() { InitializeComponent(); } private void getOutputsButton_Click(object sender, EventArgs e) { // Obtain the current node element. UABrowseNodeElement currentNodeElement = uaBrowseControl1.Outputs.CurrentNodeElement; // Display the present parts of the current node element in the outputs text text box. outputsTextBox.Text = ""; if (!(currentNodeElement.HostElement is null)) outputsTextBox.Text += $"{nameof(UABrowseNodeElement.HostElement)}: {currentNodeElement.HostElement}\r\n"; if (!(currentNodeElement.DiscoveryElement is null)) outputsTextBox.Text += $"{nameof(UABrowseNodeElement.DiscoveryElement)}: {currentNodeElement.DiscoveryElement}\r\n"; if (!(currentNodeElement.NodeElement is null)) outputsTextBox.Text += $"{nameof(UABrowseNodeElement.NodeElement)}: {currentNodeElement.NodeElement}\r\n"; } private void uaBrowseControl1_BrowseFailure(object sender, FailureEventArgs e) { // Append the event name and its arguments to the browsing events text box. browsingEventsTextBox.Text += $"{nameof(UABrowseControl.BrowseFailure)}: {e}\r\n"; } private void uaBrowseControl1_CurrentNodeChanged(object sender, EventArgs e) { // Append the event name and the current node element to the browsing events text box. browsingEventsTextBox.Text += $"{nameof(UABrowseControl.CurrentNodeChanged)}; {uaBrowseControl1.Outputs.CurrentNodeElement}\r\n"; } private void uaBrowseControl1_NodeDoubleClick(object sender, EventArgs e) { // Append the event name to the browsing events text box. browsingEventsTextBox.Text += $"{nameof(UABrowseControl.NodeDoubleClick)}\r\n"; } private void uaBrowseControl1_SelectionChanged(object sender, EventArgs e) { // Append the event name to the browsing events text box. browsingEventsTextBox.Text += $"{nameof(UABrowseControl.SelectionChanged)}\r\n"; } private void setInputsButton_Click(object sender, EventArgs e) { // Set the current node to our pre-defined OPC UA server. uaBrowseControl1.InputsOutputs.CurrentNodeDescriptor.EndpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; } } }
namespace UAFormsDocExamples._UABrowseControl { partial class UsageForm { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.uaBrowseControl1 = new OpcLabs.EasyOpc.UA.Forms.Browsing.UABrowseControl(); this.setInputsButton = new System.Windows.Forms.Button(); this.getOutputsButton = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.outputsTextBox = new System.Windows.Forms.TextBox(); this.browsingEventsTextBox = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.uaBrowseControl1)).BeginInit(); this.SuspendLayout(); // // uaBrowseControl1 // this.uaBrowseControl1.Location = new System.Drawing.Point(13, 42); this.uaBrowseControl1.MinimumSize = new System.Drawing.Size(135, 150); this.uaBrowseControl1.Name = "uaBrowseControl1"; this.uaBrowseControl1.Size = new System.Drawing.Size(450, 300); this.uaBrowseControl1.TabIndex = 0; this.uaBrowseControl1.BrowseFailure += new OpcLabs.BaseLib.FailureEventHandler(this.uaBrowseControl1_BrowseFailure); this.uaBrowseControl1.CurrentNodeChanged += new System.EventHandler(this.uaBrowseControl1_CurrentNodeChanged); this.uaBrowseControl1.NodeDoubleClick += new System.EventHandler(this.uaBrowseControl1_NodeDoubleClick); this.uaBrowseControl1.SelectionChanged += new System.EventHandler(this.uaBrowseControl1_SelectionChanged); // // setInputsButton // this.setInputsButton.Location = new System.Drawing.Point(13, 13); this.setInputsButton.Name = "setInputsButton"; this.setInputsButton.Size = new System.Drawing.Size(75, 23); this.setInputsButton.TabIndex = 1; this.setInputsButton.Text = "&Set inputs"; this.setInputsButton.UseVisualStyleBackColor = true; this.setInputsButton.Click += new System.EventHandler(this.setInputsButton_Click); // // getOutputsButton // this.getOutputsButton.Location = new System.Drawing.Point(13, 349); this.getOutputsButton.Name = "getOutputsButton"; this.getOutputsButton.Size = new System.Drawing.Size(75, 23); this.getOutputsButton.TabIndex = 2; this.getOutputsButton.Text = "&Get outputs"; this.getOutputsButton.UseVisualStyleBackColor = true; this.getOutputsButton.Click += new System.EventHandler(this.getOutputsButton_Click); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(481, 42); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(88, 13); this.label1.TabIndex = 3; this.label1.Text = "&Browsing events:"; // // outputsTextBox // this.outputsTextBox.Location = new System.Drawing.Point(13, 379); this.outputsTextBox.Multiline = true; this.outputsTextBox.Name = "outputsTextBox"; this.outputsTextBox.ReadOnly = true; this.outputsTextBox.Size = new System.Drawing.Size(951, 59); this.outputsTextBox.TabIndex = 4; // // browsingEventsTextBox // this.browsingEventsTextBox.Location = new System.Drawing.Point(484, 59); this.browsingEventsTextBox.Multiline = true; this.browsingEventsTextBox.Name = "browsingEventsTextBox"; this.browsingEventsTextBox.ReadOnly = true; this.browsingEventsTextBox.Size = new System.Drawing.Size(480, 283); this.browsingEventsTextBox.TabIndex = 5; // // UsageForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(976, 450); this.Controls.Add(this.browsingEventsTextBox); this.Controls.Add(this.outputsTextBox); this.Controls.Add(this.label1); this.Controls.Add(this.getOutputsButton); this.Controls.Add(this.setInputsButton); this.Controls.Add(this.uaBrowseControl1); this.Name = "UsageForm"; this.Text = "UsageForm"; ((System.ComponentModel.ISupportInitialize)(this.uaBrowseControl1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private OpcLabs.EasyOpc.UA.Forms.Browsing.UABrowseControl uaBrowseControl1; private System.Windows.Forms.Button setInputsButton; private System.Windows.Forms.Button getOutputsButton; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox outputsTextBox; private System.Windows.Forms.TextBox browsingEventsTextBox; } }
Requirements