Вы уверены, что элементы управления были добавлены во время проверки свойства? GroupBox
хранит дочерние элементы управления в свойстве Controls
, как и любой другой контейнерный элемент управления.
Редактировать
Я не могу начать размышлять о пользовательском контроле. Очевидно, что было бы возможно создать элемент управления с поведением, которое вы описываете, но я не могу понять причину этого. Простое создание примера проекта Windows Forms и перетаскивание в него двух кнопок и вызов MessageBox.Show(groupBox1.Controls.Count.ToString())
из другой кнопки дает 2
, как и ожидалось.
Учитывая код, который вы выложили для GroupBox
, я не вижу причин, чтобы это произошло, за исключением того, что элементы управления действительно отсутствуют в GroupBox
. Если вы проверяете свойство Parent
одного из элементов управления, какое это значение?
Редактировать 2
Если вы говорите, что у вас есть UserControl
, который содержит ваш пользовательский GroupBox
, и вы пытаетесь поместить UserControl
в Form
и поставить оттуда элементы управления insde GroupBox
, тогда это не сработает. Дизайнер в форме только «знает» о UserControl
; он не знает (или не заботится), что он содержит GroupBox
(во-первых, конструктор не имеет доступа к этой переменной по умолчанию, как и вы, поскольку это private
, если вы явно не измените модификатор ).
Чтобы сделать это в точности так, как вы хотите, вам придется сделать необходимый подъем, чтобы сделать ваш UserControl
контейнером, но это нетривиальный объем работы , Я бы предложил просто разместить GroupBox
на форме напрямую.