/// <summary>
        /// 物料树节点鼠标点击事件
        /// </summary>
        private void tvMaterial_MouseDown(object sender, MouseEventArgs e)
        {
            p = new Point(e.X, e.Y);
            TreeNode selectedNode = tvMaterialDesign.GetNodeAt(p);

            if (selectedNode == null)
            {
                return;
            }
            tvMaterialDesign.SelectedNode = selectedNode;
            selectedNode.SelectedImageKey = selectedNode.ImageKey;
            if (selectedNode.ImageKey == "card")
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    //打开卡片
                    FormCollection collection = Application.OpenForms;
                    bool           isOpened   = false;
                    foreach (Form form in collection)
                    {
                        if (form.Name.EndsWith(selectedNode.Tag.ToString()))
                        {
                            isOpened = true;
                            ((ProcessCardFrm)form).TabText      = selectedNode.Text;
                            ((ProcessCardFrm)form).ModuleObject = selectedNode.Parent.Tag;
                            ((ProcessCardFrm)form).OpenCard(null, selectedNode.Tag.ToString(), false, false);
                            form.Select();
                        }
                    }

                    if (!isOpened)
                    {
                        ProcessCardFrm frm = new ProcessCardFrm();
                        frm.TabText      = selectedNode.Text;
                        frm.Name         = string.Format("ProcessCardFrm-{0}", selectedNode.Tag.ToString());
                        frm.ModuleObject = selectedNode.Parent.Tag;
                        MainFrm.mainFrm.OpenModule(frm);
                        bool result = frm.OpenCard(null, selectedNode.Tag.ToString(), false, false);
                        if (!result)
                        {
                            MainFrm.mainFrm.CloseModule(frm);
                        }
                    }
                }
                tsmnuNewCard.Visible            = false;
                tsmnuAddProcessPlanning.Visible = false;
                tsmnuMaterialQuota.Visible      = false;
                tsmnuChangeToTypical.Visible    = true;
                tsmnuDeleteCard.Visible         = true;
            }
            else
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    GetMaterial(selectedNode.Tag);
                }
                tsmnuNewCard.Visible            = true; //selectedNode.Parent != null;
                tsmnuAddProcessPlanning.Visible = true; // selectedNode.Parent != null;

                tsmnuMaterialQuota.Visible = true;
                if (selectedNode.SelectedImageKey == "materialG" ||
                    selectedNode.SelectedImageKey == "materialS" ||
                    selectedNode.SelectedImageKey == "materialC")
                {
                    if (selectedNode.Nodes.Count > 0 && selectedNode.Nodes[0].ImageKey == "card")
                    {
                        tsmnuChangeToTypical.Visible = true;
                    }
                    else
                    {
                        tsmnuChangeToTypical.Visible = false;
                    }
                }
                else
                {
                    tsmnuChangeToTypical.Visible = false;
                }
                tsmnuDeleteCard.Visible = false;
            }
        }
        /// <summary>
        /// 产品树节点鼠标点击事件
        /// </summary>
        private void tvProduct_MouseDown(object sender, MouseEventArgs e)
        {
            p = new Point(e.X, e.Y);
            TreeNode selectedNode = tvMaterialPBom.GetNodeAt(p);

            if (selectedNode == null)
            {
                return;
            }
            selectedNode.SelectedImageKey = selectedNode.ImageKey;
            tvMaterialPBom.SelectedNode   = selectedNode;
            //if(e.Button == System.Windows.Forms.MouseButtons.Left)
            //    GetPbom(selectedNode.Tag);

            if (selectedNode.ImageKey == "card")
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    //打开卡片
                    FormCollection collection = Application.OpenForms;
                    bool           isOpened   = false;

                    string pbomId = selectedNode.Parent.Parent.Tag.ToString();//改为自身
                    if (selectedNode.Parent.Tag.GetType() == typeof(MaterialModule))
                    {
                        pbomId = ((MaterialModule)selectedNode.Parent.Tag).pbomid;
                    }
                    foreach (Form form in collection)
                    {
                        if (form.Name.EndsWith(selectedNode.Tag.ToString()))
                        {
                            isOpened = true;
                            ((ProcessCardFrm)form).ModuleObject = selectedNode.Parent.Tag;
                            ((ProcessCardFrm)form).PBomID       = pbomId;
                            ((ProcessCardFrm)form).TabText      = selectedNode.Text;
                            ((ProcessCardFrm)form).OpenCard(null, selectedNode.Tag.ToString(), false, false);
                            form.Select();
                        }
                    }

                    if (!isOpened)
                    {
                        ProcessCardFrm frm = new ProcessCardFrm();
                        frm.ModuleObject = selectedNode.Parent.Tag;
                        frm.PBomID       = pbomId;
                        frm.TabText      = selectedNode.Text;
                        frm.Name         = string.Format("ProcessCardFrm-{0}", selectedNode.Tag.ToString());
                        MainFrm.mainFrm.OpenModule(frm);
                        bool result = frm.OpenCard(null, selectedNode.Tag.ToString(), false, false);
                        if (!result)
                        {
                            MainFrm.mainFrm.CloseModule(frm);
                        }
                    }
                }
                tsmnuNewCard.Visible            = false;
                tsmnuAddProcessPlanning.Visible = false;
                tsmnuMaterialQuota.Visible      = false;
                tsmnuChangeToTypical.Visible    = false;
                tsmnuDeleteCard.Visible         = true;
            }
            else
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    GetMaterial(selectedNode.Tag);
                }
                //PBOM时根节点物料挂卡片有问题
                tsmnuNewCard.Visible            = true; //selectedNode.Parent != null;
                tsmnuAddProcessPlanning.Visible = true; // selectedNode.Parent != null;
                tsmnuMaterialQuota.Visible      = false;
                //if (selectedNode.SelectedImageKey == "materialG" ||
                //    selectedNode.SelectedImageKey == "materialS" ||
                //    selectedNode.SelectedImageKey == "materialC")
                //{
                //    if (selectedNode.Nodes.Count > 0 && selectedNode.Nodes[0].ImageKey == "card")
                //    {
                //        tsmnuChangeToTypical.Visible = true;
                //    }
                //    else
                //    {
                //        tsmnuChangeToTypical.Visible = false;
                //    }
                //}
                //else
                tsmnuChangeToTypical.Visible = false;
                tsmnuDeleteCard.Visible      = false;
            }
        }