Hoe WinForms UserControl de grootte van de container te laten vullen

Ik probeer een applicatie voor het hoofdscherm met meerdere lay-outs te maken. Ik heb bovenaan enkele knoppen die linken naar het hoofdgedeelte van de applicatie (bijv. het beheervenster voor elke entiteit in het model)

Als u op een van deze knoppen klikt, wordt de bijbehorende UserControl in een paneel weergegeven. Het Panel bevat de UserControls die op hun beurt de UI bevatten.

De WinForms UserControl heeft niet de eigenschap Anchorof Dock.

Ik heb geprobeerd de eigenschap van UserControl in te stellen

AutoSize=True

En

private void ManageUsersControl_Load(object sender, EventArgs e)
{
        this.Width = this.Parent.Width;
        this.Height = this.Parent.Height;
}

Maar deze werkten niet.
Opmerking: ik laad dit besturingselement dynamisch tijdens runtime


Antwoord 1, autoriteit 100%

Probeer de eigenschap Dockin te stellen op Fill:

private void ManageUsersControl_Load(object sender, EventArgs e)
{
        this.Dock = DockStyle.Fill;
}

Ik zou AutoSizeook als standaard instellen, ik geloof dat het Falseis. Kijk hoe dat werkt …


Antwoord 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);

Antwoord 3

In het formaat wijzigen gebeurtenis gebruikerscontrole .

private void MyTextBox_Resize(object sender, EventArgs e)
        {
            this.Width = textBox1.Width;
            this.Height = textBox1.Height;
        }

Other episodes