码迷,mamicode.com
首页 > 其他好文 > 详细

挂起布局逻辑与恢复布局逻辑

时间:2014-10-31 13:48:01      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:sp   bs   res   设计   程序   nbsp   方法   函数   c   

this.SuspendLayout();
this.ResumeLayout();

 

有时候,需要重新布置整个窗口里的控件的位置布局,如刚刚初始化时就是一个例子。这样在每增加一个有dock等属性的控件时,由于这些布局都是相对性布局,都需要重新计算位置什么的,并实际执行布局。如果一个窗口上有50个控件,这个布局处理就要执行50次,并触发50 * n次的布局有关的事件。

而实际上,在定义布局方案过程中,这些布局是没有必要每个控件定义之后就立即执行布局的,也没有必要处理因此发出的布局事件。

更合理的办法,是在全部定义完所有控件的布局方案之后,才一次性计算布局结果,并一次执行。

于是,就设计了这两个函数。第一个函数用于暂停实际的布局,而第二个函数用于恢复实际布局。

在程序里,如果你需要大规模调整布局方案时,就可以先调用suspendlayout,暂停布局执行,然后定义谁在前,谁在后,谁在上,谁在下,谁填充左,谁填充右。

布置完毕。resumelayout,于是,一次性处理完毕。

如果注释这两个方法的调用,效果上也不会有什么变化,只是在性能上会造成不必要的开销。

挂起布局逻辑与恢复布局逻辑

标签:sp   bs   res   设计   程序   nbsp   方法   函数   c   

原文地址:http://www.cnblogs.com/T-J-D/p/4064794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!