public CommandExecutor commandExecutor = new CommandExecutor();//指令处理器

        /// <summary>
        /// 重新加载左侧节点树
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="tree"></param>
        private void reload(dynamic obj, TreeView tree)
        {
            tree.Nodes.Clear();
            tree.MouseDown -= tree_MouseDown;
            TreeNode RootNode = new TreeNode();

            RootNode.Tag = obj;
            if (typeof(Lane) == obj.GetType())
            {
                //RootNode.Name = "lane";
                RootNode.Text = "lane";
            }
            else
            {
                //RootNode.Name = "jobQueue";
                RootNode.Text = "jobQueue";
            }
            nodeUtil.AddChildNode(RootNode);
            tree.Nodes.Add(RootNode);
            tree.ExpandAll();
            tree.SelectedNode = RootNode;

            if (workingnode != null)
            {
                foreach (TreeNode node in tree.Nodes)
                {
                    TreeNode treenode;
                    if (null != workingnode.Parent)
                    {
                        treenode = FindNode(node, workingnode.Parent.Text + workingnode.Text);
                    }
                    else
                    {
                        treenode = FindNode(node, workingnode.Text);
                    }
                    if (treenode != null)
                    {
                        tree.SelectedNode = treenode;
                        tree.Focus();
                    }
                }
            }

            //tree.NodeMouseDoubleClick += TreeLane_NodeMouseDoubleClick;
            tree.MouseDown += tree_MouseDown;
        }