Способ «размещения» пользовательского элемента управления заключается в добавлении экземпляра пользовательского элемента управления в форму в качестве дочернего элемента управления. Каждая форма имеет открытое Controls
свойство , которое предоставляет класс ControlsCollection
. Это коллекция всех дочерних элементов управления, размещенных в этой форме.
Все, что вам нужно сделать, это добавить свой пользовательский элемент управления в коллекцию элементов управления формы. Это будет иметь именно тот эффект, который вы хотите. Например:
CustomUserControl uc = new CustomUserControl();
myForm.Controls.Add(uc);
Чтобы отменить эффект, вы также можете закрепить пользовательский элемент управления, чтобы заполнить всю клиентскую область формы хоста, или закрепить его со всех четырех сторон. Стыковка приведет к изменению размера пользовательского элемента управления при изменении размера его главной формы. Привязка просто центрирует пользовательский элемент управления в середине его хоста. Используйте соответствующие свойства Dock
и Anchor
вашего пользовательского элемента управления для достижения этого эффекта.
И, конечно, любой объект формы может сделать это. Я бы выделил класс Form
и выставил бы строго типизированный метод для добавления экземпляров моих пользовательских элементов управления в его коллекцию элементов управления. Например:
public class HostForm : Form
{
public void SetChildControl<TUserControl>(TUserControl ctrl) where TUserControl : UserControl
{
// Add the specified user control to the forms controls collection
this.Controls.Add(ctrl);
// Dock the user control in its host form
ctrl.Dock = DockStyle.Fill;
}
}