Winforms - 在面板内填充用户控件

omr*_*n12 2 c# winforms

我是winforms的新手,我想做的是一个简单的形式:

  • 在我的表格中有一个小组.

  • 该面板链接到用户控件

  • 用户控件应该填充面板.

这是我的表格:

public Form1()
    {
        InitializeComponent();

        UserControl1 userControl = new UserControl1();

        panel1.Controls.Add(userControl);
        userControl.Anchor = ((AnchorStyles)((((AnchorStyles.Top | AnchorStyles.Bottom)
     | AnchorStyles.Left) | AnchorStyles.Right)));
        userControl.Dock = DockStyle.Fill;
    }
Run Code Online (Sandbox Code Playgroud)

不工作 - >控制doest伸展

PIC

Jig*_*ker 5

试试这个,

    public Form1()
    {
        InitializeComponent();
        panel1.Dock = DockStyle.Fill;
        UserControl1 userControl = new UserControl1();
        userControl.Dock = DockStyle.Fill;
        panel1.Controls.Add(userControl);

    }
Run Code Online (Sandbox Code Playgroud)

userControl.Dock = DockStyle.Fill; 应该在添加到panel1之前调用.

您还需要Anchor在UserControl中设置控件的属性,以根据面板中的usercontrol拉伸来拉伸它.

喜欢.

Public Sub UserControl1()

        //This call is required by the designer.
        InitializeComponent();

        //Add any initialization after the InitializeComponent() call.
        Label1.Anchor = AnchorStyles.Top;
        Label2.Anchor = AnchorStyles.Right;
        Label4.Anchor = AnchorStyles.Bottom;
        Label3.Anchor = AnchorStyles.Left;
    End Sub
Run Code Online (Sandbox Code Playgroud)

注意: userControl.Dock = DockStyle.Fill;仅拉伸usercontrol它自己不控制用户控件内部.舒展的用户控制的控制需要设置Dock以及Anchor相应的属性.