/// <summary>
 /// 通过一个选中节点替换或添加一个输出结构
 /// </summary>
 /// <param name="selectItemTypeNode"></param>
 private void ChangedItemStructToGirveToByTreeNode(TreeNode selectItemTypeNode)
 {
     if (selectItemTypeNode != null && selectItemTypeNode.Tag.GetType().Equals(typeof(EnumGoodsType)) && Color.Equals(selectItemTypeNode.ForeColor, Color.Red))
     {
         SynthesisDataStruct.SynthesisItemStruct itemStruct = new SynthesisDataStruct.SynthesisItemStruct();
         itemStruct.itemType   = (EnumGoodsType)selectItemTypeNode.Tag;
         itemStruct.num        = 1;
         itemStruct.minQuality = EnumQualityType.White;
         itemStruct.maxQuality = EnumQualityType.White;
         if (synthesisDataStruct.outputStruct == null)
         {
             synthesisDataStruct.outputStruct = itemStruct;
         }
         else
         {
             if (synthesisDataStruct.outputStruct.itemType == itemStruct.itemType)
             {
                 MessageBox.Show("已经存在该材料");
                 return;
             }
             else
             {
                 DialogResult dr = MessageBox.Show("是否替换材料?", "警告!", MessageBoxButtons.YesNo);
                 if (dr == DialogResult.No)
                 {
                     return;
                 }
                 synthesisDataStruct.outputStruct = itemStruct;
             }
         }
         ChangedDataToGroupBox_To(itemStruct);
     }
 }
 /// <summary>
 /// 通过一个选中节点添加一个输入结构
 /// </summary>
 /// <param name="selectItemTypeNode">选中节点</param>
 private void AddNewItemStructToGirveFromByTreeNode(TreeNode selectItemTypeNode)
 {
     if (selectItemTypeNode != null && selectItemTypeNode.Tag.GetType().Equals(typeof(EnumGoodsType)) && Color.Equals(selectItemTypeNode.ForeColor, Color.Red))
     {
         SynthesisDataStruct.SynthesisItemStruct itemStruct = new SynthesisDataStruct.SynthesisItemStruct();
         itemStruct.itemType   = (EnumGoodsType)selectItemTypeNode.Tag;
         itemStruct.num        = 1;
         itemStruct.minQuality = EnumQualityType.White;
         itemStruct.maxQuality = EnumQualityType.White;
         if (synthesisDataStruct.inputStruct == null)
         {
             synthesisDataStruct.inputStruct    = new SynthesisDataStruct.SynthesisItemStruct[1];
             synthesisDataStruct.inputStruct[0] = itemStruct;
         }
         else
         {
             //如果已经存在相同的材料则直接返回
             if (synthesisDataStruct.inputStruct.Count(temp => temp.itemType == itemStruct.itemType) > 0)
             {
                 MessageBox.Show("已经存在该材料");
                 return;
             }
             else
             {
                 SynthesisDataStruct.SynthesisItemStruct[] tempArray = new SynthesisDataStruct.SynthesisItemStruct[synthesisDataStruct.inputStruct.Length + 1];
                 Array.Copy(synthesisDataStruct.inputStruct, tempArray, synthesisDataStruct.inputStruct.Length);
                 tempArray[tempArray.Length - 1] = itemStruct;
                 synthesisDataStruct.inputStruct = tempArray;
             }
         }
         AddDataToGroupBox_From(itemStruct);
     }
 }
        /// <summary>
        /// 给GroupBox_To控件更换一条数据
        /// </summary>
        /// <param name="itemStruct"></param>
        private void ChangedDataToGroupBox_To(SynthesisDataStruct.SynthesisItemStruct itemStruct)
        {
            GroupBox_To.Controls.Clear();
            SynthesisItemControl synthesisItemControl = new SynthesisItemControl(itemStruct);

            GroupBox_To.Controls.Add(synthesisItemControl);
            synthesisItemControl.Location = new Point(3, 23);
            synthesisItemControl.Size     = new Size(GroupBox_From.Size.Width - 6, 30);
            synthesisItemControl.Anchor   = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
        }
        /// <summary>
        /// 给GroupBox_From控件添加一条数据
        /// </summary>
        /// <param name="itemStruct"></param>
        private void AddDataToGroupBox_From(SynthesisDataStruct.SynthesisItemStruct itemStruct)
        {
            SynthesisDataStruct.SynthesisItemStruct _itemStruct = itemStruct;
            SynthesisItemControl synthesisItemControl           = new SynthesisItemControl(_itemStruct);
            Button closeBtn = new Button();

            closeBtn.Text   = "×";
            closeBtn.Click += (sender, e) =>
            {
                GroupBox_From.Controls.Remove(synthesisItemControl);
                GroupBox_From.Controls.Remove(closeBtn);
                synthesisDataStruct.inputStruct = synthesisDataStruct.inputStruct.Where(temp => !temp.Equals(_itemStruct)).ToArray();
                UpdateGroupBox_From();
            };
            synthesisItemControl.Tag = closeBtn;
            closeBtn.Tag             = synthesisItemControl;
            GroupBox_From.Controls.Add(synthesisItemControl);
            GroupBox_From.Controls.Add(closeBtn);
            UpdateGroupBox_From();
        }
 public SynthesisItemControl(SynthesisDataStruct.SynthesisItemStruct synthesisItemStruct)
 {
     InitializeComponent();
     this.synthesisItemStruct = synthesisItemStruct;
     Init();
 }