我很红,ISupportInitializeDesigner使用这些接口方法来支持优化,确保控件初始化的原子性,并防止在初始化期间对控件执行任何操作.我的问题是:
它与优化没有任何关系.ISupportInitialize是控件对分配属性的顺序敏感时所需的接口.没有任何方法可以影响设计师分配它们的顺序,它按字母顺序排列.
您通常在方法中将bool变量设置为true,BeginInit()在属性设置器中对此进行测试,并在设置时不执行任何操作.EndInit()然后,您的方法使属性值有效.
你可以在ErrorProvider组件中看到一个很好的例子.请注意它如何使用这些方法来推迟数据绑定.该PictureBox控件是另一个很好的例子,它使用它推迟下载图像. TrackBar是另一个例子,它使用它来确保Value属性介于最小值和最大值之间.Etcetera,.NET Framework源代码通常是查看.NET类型在实践中如何使用的好地方.
LeB*_*ste -1
根据定义,设计器允许在可视模式下创建控件,然后由 Visual Studio 生成初始化控件的适当代码。
初始化在一处完成,以避免代码稍后出现任何空引用问题。当您使用它们的引用时,您确实希望每个控件都已经创建。
例如,如果您想基于特定的构造函数动态创建界面,您完全可以创建控件初始化。
| 归档时间: |
|
| 查看次数: |
4519 次 |
| 最近记录: |