В данный момент я делаю экран настроек, в котором будет группа радиокнопок, которая будет определять, какие элементы управления отображаются. Различные настройки содержатся в UserControl.
Я динамически создаю этот UserControl следующим образом:
panel = new btSettings();
this.Controls.Add(panel);
panel.Location = new Point(15, 49);
Просто интересно, как я могу получить доступ к полям в этом элементе управления и во время разработки, когда объект будет создан только во время выполнения?
Спасибо.
Ответ 1 · GrayWizardx
Вам нужно будет использовать косвенные ссылки, чтобы делать то, что вы хотите сделать. Прошло некоторое время с тех пор, как я работал с пользовательскими элементами управления, но контейнерные элементы управления должны поддерживать коллекцию Controls (или Children), которая будет возвращать существующие в ней элементы управления. Затем вам нужно будет перебрать их, привести к нужным вам типам и работать с ними. Например:
Foreach(Control target in panel.Controls) {
if (target.GetType() == typeof(RadioButton) {
((RadioButton)target).Checked = true;
//etc...
}
}
Ответ 2 · рейтинг 1 · Javier
Отвечая на ваш вопрос...
Если вам нужно работать с элементом управления во время разработки, я думаю, что единственный способ - создать настраиваемый элемент управления и перетащить его в форму.
Ответ 4 · Dan McClain
Вам придется программно настроить элемент управления во время выполнения. Вы можете использовать время разработки, чтобы выяснить, что вы хотите, статически добавив элемент управления, но вам придется программно настроить элемент управления во время выполнения.