c# – 调整窗口大小时锚定控件不会调整大小(56k注意)
这个真的踢我的背后.我有一个表单,由应用程序的主要形式生成并拥有,用于搜索记录.表单放在一个停靠的TableLayoutPanel中,结合了Absolute和Percentage大小的行/列,这样我的标签在数据输入和结果控件增长时保持相同的大小.我们谈论的是20个控件.
问题是,虽然TableLayoutPanel是填充对接的,并且所有子控件也都是填充对接的,但当我抓住窗口边缘并拖动时,表单内部没有任何大小调整大小.一切都在设计师中调整得很好,但在实际应用中却没有. 我确实使用了我的Google-fu,并找到了this SO question,它指向了this MSKB article.我创建了一个派生的FlowLayoutPanel和一个带有线程调用的派生TableLayoutPanel并将它们放入,但它仍然无法正常工作.这是发生这种情况的唯一形式,另一种形式也有一些非常深的嵌套(它使用TabControl和TableLayoutPanel来布局数据输入控件,但没有RB). 其他相关信息: >没有设置MaxSize属性. 我在这里撕扯我的头发.救命! 编辑:以下是一些显示设计器和应用程序中的布局行为的请求图片: 以“嵌套”开头的控件直接从内置面板控件派生,它们唯一的更改是重写OnSizeChanged()以异步调用基本方法(KB文章中的解决方法).如前所述,它也不适用于内置面板.从最后两个窗口可以看出,mainLayout TLP即使停靠在设计器的窗口中也不会增长. 解决方法
史诗Facepalm.
在这种形式的构造函数(用户代码端)中,我调用SuspendLayout()来执行一些可能影响布局的附加设置.猜猜完成后我没有打电话. 如果您调用SuspendLayout进行自己的自定义布局更改,请务必在完成后调用ResumeLayout(true)(或ResumeLayout(false),然后调用PerformLayout()). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |