2009-05-18 26 views
10

是否有人可以解释使用ISupportInitialize接口方法(BeginInit/EndInit)和使用SuspendLayout/ResumeLayout之间的区别?ISupportInitialize(BeginInit/EndInit)和SuspendLayout/ResumeLayout之间的区别

ISupportInitialize仅用于构建/“初始”初始化期间......还是可以在以后要将新的子控件添加到现有的父控件时使用它?

有什么特别的区别?

我非常感谢您的帮助!

谢谢

帕托

+0

--------------- 今天我想通过从设计器代码转换它来实现动态控件创建。哪一个优先? BeginInit()或SuspendLayout()? ----------------------((ISupportInitialize)Process_GroupControl).BeginInit(); Process_GroupControl.SuspendLayout(); – CallMeLaNN 2011-03-15 08:59:11

回答

4

ISupportInitialize接口住在System.dll中,是刚刚在部件领域一个非常通用的概念接口。顺便说一下,System.Windows.Forms的很多部分都是组件,而Windows.Forms也是ComponentModel的主要用户。

Suspend/ResumeLayout是一个纯粹的Windows.Forms事情,并且确实告诉控件不要在尝试和执行图形等操作时使用它。添加子控件或更改属性。

-1

正确使用VB.Net中的代码为此,大多数反编译器得到这个错误。

CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()