Как заставить WinForms UserControl заполнить размер своего контейнера
Я пытаюсь создать многослойное приложение на главном экране. У меня есть несколько кнопок в верхней части, которые ссылаются на основной раздел приложения (например, окно управления для каждого объекта в модели)
При нажатии любой из этих кнопок отображается связанный элемент UserControl на панели. Панель содержит пользовательские элементы управления, которые в свою очередь содержат пользовательский интерфейс.
WinForms UserControl не имеет Anchor
или же Dock
имущество.
Я попытался установить свойство UserControl
AutoSize=True
А также
private void ManageUsersControl_Load(object sender, EventArgs e)
{
this.Width = this.Parent.Width;
this.Width = this.Parent.Height;
}
Но это не сработало.
Примечание: я загружаю этот элемент управления динамически во время выполнения
3 ответа
Попробуйте установить Dock
собственность на Fill
:
private void ManageUsersControl_Load(object sender, EventArgs e)
{
this.Dock = DockStyle.Fill;
}
Я бы тоже поставил AutoSize
по умолчанию, я считаю, False
, Посмотрите, как это работает...
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);
В событии изменения размера пользовательский элемент управления.
private void MyTextBox_Resize(object sender, EventArgs e)
{
this.Width = textBox1.Width;
this.Height = textBox1.Height;
}