如何使WinForms UserControl填充其容器的大小

cod*_*biz 43 .net c# mdi multipage winforms

我正在尝试创建一个多布局主屏幕应用程序.我在顶部有一些链接到应用程序主要部分的按钮(例如模型中每个实体的管理窗口)

单击任何这些按钮将在Panel中显示关联的UserControl.Panel持有UserControls,而UserControls又拥有UI.

WinForms UserControl没有AnchorDock属性.

我试过设置UserControl的属性

AutoSize=True
Run Code Online (Sandbox Code Playgroud)

private void ManageUsersControl_Load(object sender, EventArgs e)
{
        this.Width = this.Parent.Width;
        this.Height = this.Parent.Height;
}
Run Code Online (Sandbox Code Playgroud)

但这些都行不通.
注意:我在运行时动态加载此控件

IAb*_*act 85

尝试将Dock属性设置为Fill:

private void ManageUsersControl_Load(object sender, EventArgs e)
{
        this.Dock = DockStyle.Fill;
}
Run Code Online (Sandbox Code Playgroud)

我也会设置AutoSize为默认值,我相信是False.看看它是如何工作的......

  • 从OP:`winforms usercontrol没有"Anchor"或"Dock"属性 (4认同)
  • 好的,这真让我感到惊讶.你知道为什么这个属性不在UserControl设计器属性网格中吗?顺便说一句,它在运行时完美运行. (3认同)
  • @tunmisefasipe:很高兴帮忙......你可以尝试设置`DoubleBuffered = true`*... IIRC*.是的,没有设计师的Dock属性是令人沮丧的.但是,它是有道理的 - 当在Designer中使用UserControl本身时,它将使用什么容器来*最大化*本身?"填充"没有容器. (3认同)