Как заставить 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;
        }
Другие вопросы по тегам