Как насчет создания одного метода EnableButtons
, который включает / отключает кнопки в соответствии с заданными критериями, такими как «включить cmdRight2, только если .... имеет значение true».
Затем вызывайте метод всякий раз, когда некоторые критерии могут измениться. Преимущество этого по сравнению с тем, как вы это делаете сейчас, состоит в том, что критерии в методе являются «абсолютными» (в том смысле, что кнопки либо включаются, либо отключаются за один раз), чем «относительными» (включайте кнопку, когда пользователь делает то или это).
Вы также можете вызвать этот метод из события Application.Idle
вместо вызова его в ответ на какое-либо действие пользователя.
РЕДАКТИРОВАТЬ
Объявите следующий метод:
private void EnableButtons()
{
controlX.Enabled = (<condition...>);
controlY.Enabled = (<condition...>);
}
Вы можете вызвать этот метод из позиций в коде, где что-то должно измениться во включенных состояниях кнопок, или вы можете сделать следующее в конструкторе формы:
public Form1()
{
// Other code...
Application.Idle += new <The respective event handler>;
}
Затем объявите метод с соответствующей подписью для события и вызовите EnableButtons
там. Этот метод будет вызываться в ситуациях, когда ваше приложение «бездействует» (ожидает действий пользователя).