Вы должны заставить дочерние формы принимать экземпляр родительской формы в качестве параметра конструктора.
Дети могут сохранить этот параметр в закрытом поле, а затем по желанию взаимодействовать с родителем.
Для оптимального проектирования вы должны абстрагировать родителя от потомка через интерфейс, реализованный родителем, содержащий методы и свойства, которые делают то, что нужно потомкам. Затем дети должны взаимодействовать только с этим интерфейсом.
public interface IChildHost {
void UpdateStatusBar(string status);
//Other methods & properties
}
public partial class ParentForm : IChildHost {
public void UpdateStatusBar(string status) {
...
}
//Implement other methods & properties
}
public partial class ChildForm {
readonly IChildHost host;
public ChildForm(IChildHost parent) {
this.host = parent;
}
}