Хотите добавить элементы управления с помощью кода (программно) или с помощью дизайнера?
Если вы хотите добавить элемент управления в групповую коробку, панель или другой контейнер, сначала вы создаете элемент управления:
Label myLabel = new Label();
myLabel.Name = "Name";
myLabel.Text = "Example";
myLabel.Location = new Point(10, 10);
Затем добавьте его в контейнер, используя свойство Controls контейнера, с помощью метода add:
myGroupBox.Controls.Add(myLabel);
Наконец, вы можете использовать состояние вашего флажка для включения / выключения всегоконтейнер (и все его дочерние элементы управления).Возможно, вы захотите где-нибудь использовать логическое значение, но это основная идея:
В событии CheckChanged для вашего флажка сделайте следующее:
myGroupBox.Enabled = myCheckBox.Checked;
Или наоборот, в зависимости от того, как выхотите включить состояние.
РЕДАКТИРОВАТЬ:
Из вашего комментария кажется, что вы хотите добавить дополнительные элементы управления в существующий пользовательский элемент управления после времени разработки.Вы должны предоставить эту функциональность в публичном методе.
public void AddControl(Control controlToAdd)
{
myGroupBox.Controls.Add(controlToAdd);
}
По существу, подвергая Controls.Add
контейнера пользовательского элемента управления коду, который взаимодействует с вашим пользовательским элементом управления.
Я надеюсь, что этополезно.
РЕДАКТИРОВАТЬ 2:
Вот код, который вы отправили в комментарии:
foreach(Control ctrl in this.groupbox1.Controls)
{
if (ctrl != this.checkbox1)
{
ctrl.Enabled = this.checkbox1.Checked;
}
}
Это перебирает все элементы управления, ивключает или отключает все из них, кроме checkbox1, в зависимости от состояния checkbox1.
Во-первых, если checkbox1 не является дочерним элементом управления в groupbox1, нет необходимости в операторе if, который гарантирует, что текущий элемент управления не является флажок1.Этого никогда не будет, потому что foreach выполняет только итерации дочерних элементов управления groupbox1.Пока checkbox1 находится за пределами groupbox1, он не включается в итерацию.
Во-вторых, его намного быстрее и проще поддерживать, если просто включить или отключить весь групповой ящик.Все элементы управления в нем будут наследовать включенное / отключенное состояние.Используя ваши контрольные имена, код будет:
groupbox1.Enabled = checkbox1.Checked;
Надеюсь, я правильно понимаю ваш вопрос.