C# Winforms-填充面板内的用户控件

C# Winforms-填充面板内的用户控件,c#,winforms,C#,Winforms,我是winforms的新手,我尝试做的是一个简单的表单: 在我的表格中有一个小组 该面板链接到用户控件 用户控件应填充面板 这是我的表格: public Form1() { InitializeComponent(); UserControl1 userControl = new UserControl1(); panel1.Controls.Add(userControl); userControl.Anchor

我是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;
    }
不工作->控件没有拉伸


您还需要停靠您的用户控件。停靠面板使其停靠到窗体,但不停靠到
UserControl

userControl.Dock = DockStyle.Fill;
试试这个

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

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

您还需要设置UserControl内部控件的
锚定
属性,以基于面板中的UserControl拉伸来拉伸它

喜欢


注意:
userControl.Dock=DockStyle.Fill仅拉伸用户控件自身,而不是用户控件内部的控件。要拉伸用户控件的控件,需要相应地设置
Dock
以及
Anchor
属性

为什么要在代码级别执行此操作?我感觉您的目的是设置用户控件的Dock属性,而不是面板。设置面板的锚定和停靠以及用户控件的锚定和停靠有什么意义?您需要停靠
panel1
以及
userControl
而不是任何一个。你们需要这样做,两个都要装填,一样的result@omriman12尝试删除
锚定
属性。不需要锚,看看这是否有帮助。不工作。控制装置没有穿过面板
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