Если вы хотите, чтобы ребенок что-то сделал с отцом, отец должен хотя бы знать, что ребенок существует.Ему не нужно знать специфику, но если он должен реагировать на своего ребенка, ему нужны обработчик событий, обратный вызов и т. Д., Которые ребенок будет вызывать.
Это может быть достигнуто с помощью основного принципа, называемогоПринцип обращения зависимостей.Классы, которые зависят от внешних классов, должны зависеть не от конкретных реализаций, а от абстракций реализации.Родителю не нужен конкретный ребенок, просто нечто, похожее на одно и действующее как единое целое.Дети, к тому же, не должны знать своего конкретного Родителя, но если требуется взаимодействие, Ребенок должен иметь какой-то способ рассказать Родителю, даже если он не знает, как Родитель слушает.
Попробуйте Parent (вашу форму), которая содержит ссылку IChild (кнопка) и открытый обработчик события.Затем создайте Child, который реализует IChild и имеет событие, которое он может вызвать.Затем вам нужен третий класс, который создает (или получает) Parent и Child, передает Parent Child (как IChild) и подключает событие Child к обработчику событий Parent.Теперь у вас есть родитель, который знает, что у него есть нечто похожее на ребенка, и у вас есть ребенок, у которого есть флаг, который он может подавать, когда происходит что-то важное, но ему не нужно знать, кто его слушает.