作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我查看了 Form
和 UserControl
生成的设计器代码,在 InitializeComponent()
方法中它们总是以
this.SuspendLayout();
结束于
this.ResumeLayout(false);
this.PerformLayout();
但是从我在这些方法的 msdn 文档中看到的,不会以
结尾 this.ResumeLayout(true); // Or just this.ResumeLayout()
做同样的事情?或者我在这里遗漏了什么?
询问是因为我将以不同的方法添加一堆控件,并且我认为我应该执行挂起-恢复例程,这样既好又高效。但是无法弄清楚这两个方法调用的原因是什么,而您似乎只能使用一个方法...
最佳答案
使用反射器:
this.ResumeLayout() is equal to this.ResumeLayout(true)
但是
this.ResumeLayout(true) is not equal to this.ResumeLayout(false) + this.PerformLayout()
原因:
当使用 false 调用 ResumeLayout 时,会循环遍历一个控件集合,LayoutEngine 会在布局中的每个控件上调用 InitLayout。
关于C#:ResumeLayout(true) 与 ResumeLayout(false) + PerformLayout() 的作用相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1339758/
我查看了 Form 和 UserControl 生成的设计器代码,在 InitializeComponent() 方法中它们总是以 this.SuspendLayout(); 结束于
我是一名优秀的程序员,十分优秀!