public void DoTreeviewNodeClick(object sender, TreeviewNodeClickEventArgs args)
        {
            switch (args.ParentNodeName)
            {
            case "ViewsNode":
                var view = (View)args.NodeTag;
                _view.ShowViewInfo(view);
                break;

            case "TablesNode":
                var table = (Table)args.NodeTag;
                _view.ShowTableInfo(table);
                break;

            case "IndexesNode":
                var index = (Index)args.NodeTag;
                _view.ShowIndexInfo(index);
                break;

            case "StoredProceduresNode":
                var procedure = (Procedure)args.NodeTag;
                _view.ShowProcedureInfo(procedure);
                break;

            case "FunctionsNode":
                var function = (Function)args.NodeTag;
                _view.ShowFunctionInfo(function);
                break;

            default:
                return;
            }
        }
 private void tvResults_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
 {
     if (TreeviewNodeClick != null)
     {
         var parentNode = e.Node.Parent;
         if (parentNode == null)
         {
             return;
         }
         var treeviewNodeClickEventrgs = new TreeviewNodeClickEventArgs
         {
             ParentNodeName = parentNode.Name,
             NodeTag        = e.Node.Tag
         };
         TreeviewNodeClick(sender, treeviewNodeClickEventrgs);
     }
 }