/// <summary>
        /// 选中检测项树双击事件,显示选中节点的误差控件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void selectedFuncTreeView_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            TreeNode node = selectedFuncTreeView.SelectedNode;

            if (IsRoot(node))
            {
                return;
            }

            SaveLastState();
            RemoveErrorControl();

            int            index    = node.Index;
            TestTargetType nodeType = (TestTargetType)Enum.Parse(typeof(TestTargetType), node.Parent.Name);

            if (nodeType == TestTargetType.PowerSource)
            {
                index = node.Index + selectedMeterDetect.Count;
            }

            var parameterControl = ProfileManager.Instance.GetParameterControl(node.Text);

            parameterControl.Header    = node.Text;
            parameterControl.ID        = SelectedTestItems[index].ID;
            parameterControl.Parameter = SelectedTestItems[index].Parameter;
            parameterControl.Location  = new System.Drawing.Point(3, 30);

            this.parameterPanel.Controls.Add(parameterControl as UserControl);
        }
        /// <summary>
        /// 删除按钮,在选中功能树中,删除选中的节点
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void deleteButton_Click(object sender, EventArgs e)
        {
            TreeNode node = selectedFuncTreeView.SelectedNode;

            if (IsRoot(node))
            {
                return;
            }

            TestTargetType nodeType = (TestTargetType)Enum.Parse(typeof(TestTargetType), node.Parent.Name);

            if (nodeType == TestTargetType.Meter)
            {
                selectedMeterDetect.RemoveAt(node.Index);  //先删除list中元素
                TestItemID--;
            }
            else if (nodeType == TestTargetType.PowerSource)
            {
                selectedPowerDetect.RemoveAt(node.Index);
                TestItemID--;
            }
            this.selectedFuncTreeView.Nodes.Remove(this.selectedFuncTreeView.SelectedNode);
            this.selectedFuncTreeView.HideSelection = false;
            this.selectedFuncTreeView.ExpandAll();

            RemoveErrorControl();
        }
        /// <summary>
        /// 添加检测项到TreeView中
        /// </summary>
        private void AddTestItemsToTreeView()
        {
            TreeNode newNode = optionalFuncTreeView.SelectedNode;

            if (IsRoot(newNode))
            {
                return;
            }

            InitSelectedFuncTreeViewNodes();
            TestTargetType nodeType = (TestTargetType)Enum.Parse(typeof(TestTargetType), newNode.Parent.Name);

            if (nodeType == TestTargetType.Meter) //添加到对应list
            {
                TestItemID++;
                TestItemInfo itemInfo = new TestItemInfo();
                itemInfo.Name           = newNode.Text;
                itemInfo.ID             = TestItemID;
                itemInfo.TestTargetType = TestTargetType.Meter;
                itemInfo.Parameter      = ProfileManager.Instance.GetCommandParameter(newNode.Text);
                SelectedMeterDetect.Add(itemInfo);
            }
            else if (nodeType == TestTargetType.PowerSource)
            {
                TestItemID++;
                TestItemInfo itemInfo = new TestItemInfo();
                itemInfo.Name           = newNode.Text;
                itemInfo.ID             = TestItemID;
                itemInfo.TestTargetType = TestTargetType.PowerSource;
                itemInfo.Parameter      = ProfileManager.Instance.GetCommandParameter(newNode.Text);
                SelectedPowerDetect.Add(itemInfo);
            }

            TreeNode tn = selectedFuncTreeView.Nodes[0];

            foreach (TestItemInfo item in SelectedMeterDetect)
            {
                tn.Nodes.Add(item.Name);
            }

            tn = selectedFuncTreeView.Nodes[1];
            foreach (TestItemInfo item in SelectedPowerDetect)
            {
                tn.Nodes.Add(item.Name);
            }

            selectedFuncTreeView.ExpandAll();
        }