【问题标题】:Panel Size keep getting smaller面板尺寸越来越小
【发布时间】:2010-07-01 14:17:20
【问题描述】:

我有很多面板和一个表格。我使用了面板,所以我不必使用多种表格。但它有一个问题。在我将面板大小分配给表单大小并显示表单后,下一次我再次分配它,令我惊讶的是,面板变得比原来的要小。为什么会这样?这是我的做法。

this.Size = panelABC.Size;
panelABC.Dock = DockStyle.Fill;
panelABC.Visible = true;

【问题讨论】:

    标签: c# winforms size panel


    【解决方案1】:

    因为面板大小已经与控件相关,所以当您再次调用此代码时,它已停靠在其中。使用 dockinganchoring 将在调整父容器大小期间管理面板大小。

    为了清晰起见 - 实际答案在另一个已发布答案的 cmets 中进行了描述。

    【讨论】:

    • 不要再调用代码,或者面板停靠时忽略大小设置。
    【解决方案2】:

    我会假设有一些填充或其他,这意味着在第一次分配之后,需要进行一些调整大小以适应意味着 panelABC 变得更小(因此它会正确适应)。因此递归调用使它变得越来越小。

    要确认是否是这种情况,请插入断点并检查您的尺寸是多少...

    【讨论】:

      【解决方案3】:

      this 是什么?如果它是您的面板所在的表单(或父控件),那么这就是您的问题:停靠您的面板会使它比父面板略小。随后对您的代码的调用使父级与面板的(较小)尺寸相匹配,然后您重复该过程...

      【讨论】:

      • 'this' 是表单。那么解决方案是什么?
      • 用一个问题回答这个问题 - 为什么将表单大小设置为面板大小?你想达到一个效果吗?很难提供修复,因为没有人知道您要使用此尺寸调整代码实现什么目标。
      • 因为我有多个面板显示不同的表单状态(你可能会说不同的窗口)
      • 而且每个人的尺码都不一样
      • 如果您停靠面板,表单大小应该决定面板大小,因此根据面板调整表单大小没有意义。此外,作为旁注,您实际上可以将表单作为子控件添加到其他控件 - 但不允许它们成为“顶级”表单。
      猜你喜欢
      • 2012-03-31
      • 2022-01-05
      • 2020-06-06
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 2016-03-05
      • 2014-05-02
      • 1970-01-01
      相关资源
      最近更新 更多