Классы и методы
Классы не должны рассматриваться просто как набор методов, когда они создаются (создаются) с помощью new
, они становятся реальными объектами, которые должны рассматриваться как таковые.
Вам необходимо переосмыслить свою стратегию и вместо этого просто указать Min
или CoundownUserControl
объект. Что каждый из них представляет? Вы предполагаете, что UserControl
(часть Form
) должен иметь свой собственный Form
, созданный для него - это не так. Form
- это объект, который создает UserControl
. UserControl
может получить доступ к Form
с помощью свойства ParentForm
.
StackOverflow
Когда вы делаете это: new Min()
вы создаете новый Min
объект. Затем в Min
, когда вы делаете это: new CountdownUserControl()
вы создаете новый CoundownUserControl
объект. Который, в свою очередь, создает новый Min
объект и так далее, и так далее.
Как исправить вашу проблему
Проще говоря, используйте Min min = (Min)this.ParentForm;
в пользовательском элементе управления, если вы уверены, что пользовательский элемент управления находится на Form
, тип которого Min
.
И, наконец, / дополнительно, вы не должны создавать экземпляр CountdownUserControl
самостоятельно, если не собираетесь устанавливать свойства и добавлять его в коллекцию Controls
формы в вашем коде. Вместо этого создайте свой проект и перетащите CountdownUserControl
на форму - свойство для доступа к элементу управления будет автоматически создано в вашем классе Min
, которое называется countdownUserControl1
.