public void ProcessInitailizePoseCombination(PoseCombination poseCombination, PoseCombination editPoseCombination)
 {
     for (int i = 0; i < editPoseCombination.GetPoseLength(); i++)
     {
         poseCombination.AddPose(editPoseCombination.GetPose(i));
     }
     for (int i = 0; i < editPoseCombination.GetKeyLength(); i++)
     {
         poseCombination.AddKey(editPoseCombination.GetKey(i));
     }
     if (editPoseCombination.GetIsContinue())
         poseCombination.SetIsContinue();
 }
 public void ProcessKeyPictureBoxPaint(Graphics graphics, PoseCombination poseCombination, Dictionary<Rectangle, Key> keyBoard)
 {
     SolidBrush redBrush = new SolidBrush(Color.FromArgb(100, 255, 0, 0));
     SolidBrush greenBrush = new SolidBrush(Color.FromArgb(100, 0, 255, 0));
     SolidBrush blueBrush = new SolidBrush(Color.FromArgb(100, 0, 0, 255));
     for (int i = 0; i < poseCombination.GetKeyLength(); i++)
     {
         Key key = poseCombination.GetKey(i);
         switch (key.GetKeyMode())
         {
             //design by http://stackoverflow.com/questions/2444033/get-dictionary-key-by-value
             case "press":
                 graphics.FillRectangle(redBrush, keyBoard.FirstOrDefault(x => x.Value.GetKeyName() == key.GetKeyName()).Key);
                 break;
             case "hold":
                 graphics.FillRectangle(greenBrush, keyBoard.FirstOrDefault(x => x.Value.GetKeyName() == key.GetKeyName()).Key);
                 break;
             case "release":
                 graphics.FillRectangle(blueBrush, keyBoard.FirstOrDefault(x => x.Value.GetKeyName() == key.GetKeyName()).Key);
                 break;
         }
     }
 }