Укажите владельца формы с помощью свойства Form.Owner.В вашем случае это может быть либо главное окно, либо любое другое окно с элементом GUI, который был запущен пользователем для создания нового окна.Новая форма будет закрыта, если ее владелец закрыт.Это отношение является каскадным, поэтому, если вы установите владельца формы B как форму A, то владельцем формы C будет B, C закроется, если вы закроете A ИЛИ B (B также закроется, если вы закроете A).Если B порождает C, но C полезен независимо от B, тогда установите для владельца C значение A (вы можете сделать это через свойство Owner формы B), и C останется открытым, когда B закрыт, но все еще закроется, когда A закроется.
Наконец, если вы откроете «основную» форму программы с помощью Application.Run (Form mainForm), когда окно, указанное в качестве параметра, будет закрыто, приложение полностью закроется.Таким образом, если исполняемый файл порождает A, A порождает B, а B порождает C, когда A закрывается, приложение закрывается, и ВСЕ окна закрываются независимо от владельца.