Как заставить WinForms UserControl заполнить размер своего контейнера
Я пытаюсь создать многослойное приложение для основного экрана. У меня есть несколько кнопок в верхней части, которые ссылаются на основной раздел приложения (например, окно управления для каждого объекта в модели)
При нажатии любой из этих кнопок отображается связанный пользовательский элемент управления на панели. Панель содержит пользовательские элементы управления, которые в свою очередь содержат пользовательский интерфейс.
WinForms UserControl не имеет свойства Anchor
или Dock
.
Я попытался установить свойство UserControl
AutoSize=True
А также
private void ManageUsersControl_Load(object sender, EventArgs e)
{
this.Width = this.Parent.Width;
this.Height = this.Parent.Height;
}
Но это не сработало.
Примечание: я загружаю этот элемент управления динамически во время выполнения
Ответы
Ответ 1
Попробуйте установить для свойства Dock
значение Fill
:
private void ManageUsersControl_Load(object sender, EventArgs e)
{
this.Dock = DockStyle.Fill;
}
Я также установил бы значение AutoSize
по умолчанию, я считаю, что False
. Посмотрите, как это работает...
Ответ 2
UserControl1 myusercontrol = new UserControl1();
myusercontrol.Dock = DockStyle.Fill;//Dock Prope. Fill user Control Contrainer
TabPage myTabPage = new TabPage();//New Tab Create
myTabPage.Text = "Wel-Come Page";//Tab Header Txt
myTabPage.Controls.Add(myusercontrol);
tabControl1.TabPages.Add(myTabPage);
Ответ 3
В пользовательском элементе управления изменения размера.
private void MyTextBox_Resize(object sender, EventArgs e)
{
this.Width = textBox1.Width;
this.Height = textBox1.Height;
}