У меня есть инкапсулированный элемент управления в производном TabPage
, и у меня возникают проблемы с его стыковкой с формой MainForm
, содержащей производный TabPage
.
Я правильно добавил TabPage
и элемент управления, и они отображаются на MainForm
. Однако элемент управления закреплен неправильно (стиль: заливка). Вы можете убедиться в этом, изменив размер формы.
Я установил свойства _control.Dock = System.Windows.Forms.DockStyle.Fill
и _control.Anchor = Left | Right | Top | Bottom
в производном конструкторе TabPage
.
Ниже приведен образец кода:
public class DerivedTab : TabPage {
public DerivedTab(){
...
_control= new BrightIdeasSoftware.TreeListView();
this.Controls.Add(this._control);
_control.Anchor = System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right | System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom;
_control.Dock = System.Windows.Forms.DockStyle.Fill;
...
}
}
В MainForm
это функция, которая создает производную вкладку во время выполнения:
private DerivedTab CreateTab(string name)
{
DerivedTab tab = new DerivedTab(this, name);
tab.SuspendLayout();
MainTab.Controls.Add(tab);
return tab;
}
В любом случае, я сгенерировал этот код с помощью Visual Studio Designer, и элемент управления закрепился правильно. Затем я создал класс для страницы вкладок (так как мне понадобится много и различное количество этих вкладок) и скопировал все, что относится к странице вкладок, в функцию CreateTab
. Я переместил все, что связано со свойством вкладки, в ее конструктор. Я инкапсулировал элемент управления в производную TabPage
и переместил все, что связано с элементом управления, на производную вкладку.
Итак, что мне не хватает? Можно ли закрепить инкапсулированный элемент управления без реализации функции обработчика событий?