问题是,虽然TableLayoutPanel是填充对接的,并且所有子控件也都是填充对接的,但当我抓住窗口边缘并拖动时,表单内部没有任何大小调整大小.一切都在设计师中调整得很好,但在实际应用中却没有.
我确实使用了我的Google-fu,并找到了this SO question,它指向了this MSKB article.我创建了一个派生的FlowLayoutPanel和一个带有线程调用的派生TableLayoutPanel并将它们放入,但它仍然无法正常工作.这是发生这种情况的唯一形式,另一种形式也有一些非常深的嵌套(它使用TabControl和TableLayoutPanel来布局数据输入控件,但没有RB).
其他相关信息:
>没有设置MaxSize属性.
>除了默认的左上角之外,这种形式没有任何内容;几乎所有东西都填充到它的容器中.但是,包含搜索结果表的子用户控件使用锚定在内部布局;这在我使用这些控件的其他形式中并不是问题,我将它们填充到SplitPanels(嵌套两个深,不少).
> RadioButtons和Labels设置为AutoSize,但没有别的.这似乎是这些控件的默认行为,即使这些值在Designer中以粗体显示,并且与正确调整大小的其他窗口的设置相匹配.
>为表单触发调整大小事件,但不激活TLP.
>当TLP锚定到正在停靠的窗口INSTEAD时,行为不会改变(它不会同时出现).
我在这里撕扯我的头发.救命!
编辑:以下是一些显示设计器和应用程序中的布局行为的请求图片:
以“嵌套”开头的控件直接从内置面板控件派生,它们唯一的更改是重写OnSizeChanged()以异步调用基本方法(KB文章中的解决方法).如前所述,它也不适用于内置面板.从最后两个窗口可以看出,mainLayout TLP即使停靠在设计器的窗口中也不会增长.