/// <summary>
 /// Browses for children of the element at the current node.
 /// </summary>
 protected void Browse(AddressSpaceDataBase.TagsTableRow itemID, OpcDa::BrowseFilters filters)
 {
     try
     {
         // begin a browse.
         OpcDa::BrowsePosition position = null;
         foreach (var element in m_Dictionary.Browse(itemID, filters, out position))
         {
             AddBrowseElement(element);
         }
         // loop until all elements have been fetched.
         while (position != null)
         {
             DialogResult result = MessageBox.Show(
                 "More items meeting search criteria exist. Continue browse?",
                 "Browse Items",
                 MessageBoxButtons.YesNo, MessageBoxIcon.Question
                 );
             if (result != DialogResult.Yes)
             {
                 break;
             }
             // fetch next batch of elements, add children.
             foreach (var element in m_Dictionary.BrowseNext(ref position))
             {
                 AddBrowseElement(element);
             }
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
 /// <summary>
 /// Browses for children of the element at the current node.
 /// </summary>
 protected void Browse(Opc.ItemIdentifier itemID, OpcDa::BrowseFilters filters)
 {
     try
     {
         // begin a browse.
         OpcDa::BrowsePosition position = null;
         OpcDa.BrowseElement[] children = m_Server.Browse(itemID, filters, out position);
         if (children == null)
         {
             return;
         }
         foreach (var element in m_Server.Browse(itemID, filters, out position))
         {
             AddBrowseElement(element);
         }
         // loop until all elements have been fetched.
         while (position != null)
         {
             DialogResult result = MessageBox.Show(
                 "More items meeting search criteria exist. Continue browse?",
                 "Browse Items",
                 MessageBoxButtons.YesNo, MessageBoxIcon.Question
                 );
             if (result != DialogResult.Yes)
             {
                 break;
             }
             // fetch next batch of elements add children.
             foreach (OpcDa::BrowseElement element in m_Server.BrowseNext(ref position))
             {
                 AddBrowseElement(element);
             }
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }