Есть куча несколько контролов в программе. По сути каждый контрол (отмечены красными цифрами), это независимая программа со своей логикой, событиями и классами. Который взаимодействует с остальными контролами. Вызывает методы соседей, возвращает им какие-то данные. Все они сведены на одну форму.
Проблема в том, как упростить обработку событий от них
1 вариант - события от всех контролов обрабатываются в главной форме. При этом в FormMain получается каша из десятков обработчиков.
Во всем этом начинаешь быстро путаться.
2 вариант - события от каждого контрола обрабатывать в своем классе. В FormMain вообще нет обработчиков. Но при этом запутывается логика
взаимодействия этих классов. Опять фигня выходит
Вопрос как же все таки упростить и структурировать такой код?