/// <summary>
 /// Occurs when the tree view control is entered.  
 /// </summary>
 /// <param name="sender">The source TreeView object for this event.</param>
 /// <param name="e">The EventArgs object that contains the event data.</param>
 private void codeTreeView_Enter(object sender, EventArgs e)
 {
     try
     {
         // Make sure the selected element in the outline window is also selected in the text window.
         CodeElementWrapper codeElement = _control.VisibleTreeView.SelectedNode as CodeElementWrapper;
         _editSupport = new EditorSupport();
         _editSupport.GoToCodeElement(codeElement, _dte);
     }
     catch (Exception ex)
     {
         SourceOutliner.DisplayMessage(Resources.ErrorPrefix, "codeTreeView_Enter exception: " + ex.ToString());
     }
 }
 /// <summary>
 /// Occurs after the tree node is selected.   
 /// </summary>
 /// <param name="sender">The source TreeView object for this event.</param>
 /// <param name="e">The TreeViewEventArgs object that contains the event data.</param>
 private void codeTreeView_AfterSelect(object sender, TreeViewEventArgs e)
 {
     try
     {
         if ((e.Action == TreeViewAction.ByKeyboard) || (e.Action == TreeViewAction.ByMouse))
         {
             CodeElementWrapper codeElement = e.Node as CodeElementWrapper;
             _editSupport = new EditorSupport();
             _editSupport.GoToCodeElement(codeElement, _dte);
         }
     }
     catch (Exception ex)
     {
         SourceOutliner.DisplayMessage(Resources.ErrorPrefix, "codeTreeView_AfterSelect exception: " + ex.ToString());
     }
 }
        /// <summary>
        /// Occurs when the tree view control is double-clicked.
        /// </summary>
        /// <param name="sender">The source TreeView object for this event.</param>
        /// <param name="e">The EventArgs object that contains the event data.</param>
        private void codeTreeView_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                CodeElementWrapper codeElement = _control.VisibleTreeView.SelectedNode as CodeElementWrapper;

                // This can happen if there were no matching code elements.
                if (codeElement == null)
                {
                    return;
                }

                _editSupport = new EditorSupport();
                _editSupport.ActivateCodeWindow(codeElement, _dte);
            }
            catch (Exception ex)
            {
                SourceOutliner.DisplayMessage(Resources.ErrorPrefix, "codeTreeView_DoubleClick exception: " + ex.ToString());
            }
        }
        /// <summary>
        /// Navigates from the selected node in the tree to its code 
        /// element in the editor window, and gives the editor focus.
        /// </summary>
        private void NavigateToSelectedTreeNode()
        {
            CodeElementWrapper codeElement = _control.VisibleTreeView.SelectedNode as CodeElementWrapper;

            // This can happen if there were no matching code elements.
            if (codeElement == null)
            {
                return;
            }

            // Switch to the code window.
            _editSupport = new EditorSupport();
            _editSupport.ActivateCodeWindow(codeElement, _dte);
        }