【问题标题】:Difference between ISupportInitialize (BeginInit/EndInit) and SuspendLayout/ResumeLayoutISupportInitialize (BeginInit/EndInit) 和 SuspendLayout/ResumeLayout 的区别
【发布时间】:2010-10-27 01:08:38
【问题描述】:

有人能解释一下使用 ISupportInitialize 接口方法(BeginInit/EndInit)和使用 SuspendLayout/ResumeLayout 的区别吗?

ISupportInitialize 是否仅在构造/“初始”初始化期间使用...或者以后您想将新的子控件添加到现有父控件时可以使用它吗?

有什么特别的区别吗?

非常感谢您的帮助!

谢谢,

帕托

【问题讨论】:

  • ---------------- 今天我想通过从设计器代码转换来实现动态控件创建。哪个优先? BeginInit() 还是 SuspendLayout()? ---------------------- ((ISupportInitialize)Process_GroupControl).BeginInit(); Process_GroupControl.SuspendLayout();

标签: .net winforms system.componentmodel


【解决方案1】:

为此在 VB.Net 中正确使用代码,大多数反编译器都会出错。

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

【讨论】:

    【解决方案2】:

    接口 ISupportInitialize 位于 System.dll 中,只是组件领域中一个相当通用的概念。顺便说一句,System.Windows.Forms 的许多部分都是组件,而且 Windows.Forms 是 ComponentModel 东西的主要用户。

    Suspend/ResumeLayout 是一个纯粹的 Windows.Forms 东西,它真正告诉控件不要尝试在你做图形的时候做图形。添加子控件或更改属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      相关资源
      最近更新 更多