【发布时间】:2010-07-01 14:17:20
【问题描述】:
我有很多面板和一个表格。我使用了面板,所以我不必使用多种表格。但它有一个问题。在我将面板大小分配给表单大小并显示表单后,下一次我再次分配它,令我惊讶的是,面板变得比原来的要小。为什么会这样?这是我的做法。
this.Size = panelABC.Size;
panelABC.Dock = DockStyle.Fill;
panelABC.Visible = true;
【问题讨论】:
我有很多面板和一个表格。我使用了面板,所以我不必使用多种表格。但它有一个问题。在我将面板大小分配给表单大小并显示表单后,下一次我再次分配它,令我惊讶的是,面板变得比原来的要小。为什么会这样?这是我的做法。
this.Size = panelABC.Size;
panelABC.Dock = DockStyle.Fill;
panelABC.Visible = true;
【问题讨论】:
因为面板大小已经与控件相关,所以当您再次调用此代码时,它已停靠在其中。使用 docking 或 anchoring 将在调整父容器大小期间管理面板大小。
为了清晰起见 - 实际答案在另一个已发布答案的 cmets 中进行了描述。
【讨论】:
我会假设有一些填充或其他,这意味着在第一次分配之后,需要进行一些调整大小以适应意味着 panelABC 变得更小(因此它会正确适应)。因此递归调用使它变得越来越小。
要确认是否是这种情况,请插入断点并检查您的尺寸是多少...
【讨论】:
this 是什么?如果它是您的面板所在的表单(或父控件),那么这就是您的问题:停靠您的面板会使它比父面板略小。随后对您的代码的调用使父级与面板的(较小)尺寸相匹配,然后您重复该过程...
【讨论】: