/// <summary> /// обновление состояния кнопок и пунктов меню, связанных с роботами /// </summary> /// <param name="state"></param> private void UpdateRobotIconUnsafe(RobotFarm.RobotFarmState state) { var indexImage = state == RobotFarm.RobotFarmState.Started ? 12 : state == RobotFarm.RobotFarmState.StartingUp ? 13 : state == RobotFarm.RobotFarmState.Stopped ? 11 : state == RobotFarm.RobotFarmState.Stopping ? 14 : 15; // проверяем есть ли кнопка на панели системных кнопок var pressedBtn = GetPressedCommonButton(SystemToolButton.RobotsStart); if (pressedBtn != null) { pressedBtn.ImageIndex = indexImage; } // кнопка "Запустить роботов" управляется из MainForm.ToolStripBtnClick + MainForm.ExecuteCommonButtonsCommand var checkBox = pressedBtn as CheckBox; if (checkBox != null) { checkBox.Checked = state == RobotFarm.RobotFarmState.Started; } // меняем доступность пунктов меню menuitemRobotPortfolio.Enabled = state == RobotFarm.RobotFarmState.Stopped; menuitemRobotState.Enabled = state == RobotFarm.RobotFarmState.Started; // также меняем соответствующие кнопки панели инструментов var btn = GetPressedCommonButton(SystemToolButton.RobotPortfolio); if (btn != null) { checkBox = btn as CheckBox; if (checkBox != null) { checkBox.Enabled = menuitemRobotPortfolio.Enabled; } } btn = GetPressedCommonButton(SystemToolButton.RobotState); if (btn != null) { checkBox = btn as CheckBox; if (checkBox != null) { checkBox.Enabled = menuitemRobotState.Enabled; } } }
/// <summary> /// изменилось состояние "фермы" роботов - обновить иконку кнопки запуска/останова /// </summary> private void RobotFarmStateChanged(RobotFarm.RobotFarmState state) { var del = new RobotFarm.StateChangedDel(UpdateRobotIconUnsafe); BeginInvoke(del, state); }