UserControl不会使用表单自动调整大小

时间:2013-04-15 15:14:34

标签: winforms user-controls windows-forms-designer

设置我的用户控件以自动调整其创建面板的大小时,我遇到了麻烦。当用户调整包含用户控件的主窗体的大小时,此用户控件的大小根本不会改变,从而导致一些糟糕的用户体验。

到目前为止,我尝试了以下内容:

  1. 确保用户控件上的 MinimumSize MaximumSize 属性设置为0.
  2. 在(1)用户控件和(2)其所在的面板 True
  3. 上设置 AutoSize 属性
  4. 将面板上的锚点属性设置为顶部底部左侧右侧
  5. Dock 属性设置为填充以获取用户控件(我使用以下代码执行此操作)
  6. 这些尝试对我的用户控件的行为没有影响:

    CalcUserControl calcControl = new CalcUserControl(CountryId);
    calcControl.Dock = DockStyle.Fill;
    panelUserCtrl.Controls.Clear();
    panelUserCtrl.Controls.Add(calcControl);
    

    我们非常感谢任何建议。

2 个答案:

答案 0 :(得分:2)

尝试将AutoSize属性设置为False。

此外,不要调用Controls.Clear();,而是尝试处理其中的控件,例如:

while (panelUserCtrl.Controls.Count > 0) {
  panelUserCtrl.Controls[0].Dispose();
}

否则,您正在泄漏内存,因为这些已删除的控件仍然存在。

答案 1 :(得分:0)

您应该将AutoSizeMode设置为GrowAndShrink。