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

时间:2014-03-03 09:51:40

标签: 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;
    }

不工作 - >控制doest伸展

pic

2 个答案:

答案 0 :(得分:5)

试试这个,

    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中设置控件的Anchor属性,以根据面板中的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

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

答案 1 :(得分:0)

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

userControl.Dock = DockStyle.Fill;