(C#)SuspendLayout是否级联到子控件?
C#:SuspendLayout是否级联到子控件 我是否必须自己迭代控件的子级才能对其调用suspendlayout? 他们的孙子呢?孙子孙女??孙子(C#)SuspendLayout是否级联到子控件?,c#,controls,C#,Controls,C#:SuspendLayout是否级联到子控件 我是否必须自己迭代控件的子级才能对其调用suspendlayout? 他们的孙子呢?孙子孙女??孙子 谢谢是的;SuspendLayout停止正在绘制的控件(或者更确切地说是正在处理的布局请求),默认情况下,该控件会沿着子结构向下延伸 换句话说:“没有人”再调用绘制例程了。SuspendLayout不会递归传播,但根据您正在执行的操作,仅暂停特定控件可能就足够了 经验法则是:挂起要多次处理其布局的控件 例如: 如果控件包含多个子控件,并且您打算
谢谢是的;SuspendLayout停止正在绘制的控件(或者更确切地说是正在处理的布局请求),默认情况下,该控件会沿着子结构向下延伸
换句话说:“没有人”再调用绘制例程了。
SuspendLayout
不会递归传播,但根据您正在执行的操作,仅暂停特定控件可能就足够了
经验法则是:挂起要多次处理其布局的控件
例如:
- 如果控件包含多个子控件,并且您打算添加一个子控件,则不需要挂起任何内容
- 如果要向父级添加多个子级,则应挂起父级
- 如果要更改一个子项的
属性,则无需挂起任何内容。子对象只会更改一次,而这反过来只会导致父对象中发生一次更改Size
- 如果要更改多个子项的
,则应仅挂起父项。孩子们每次只得到一个调整大小的选项,所以不需要挂起它们。但是,这些子级中的每一个都会导致父级重新启动,因此,一旦调用大小
,将暂停父级以批量执行所有这些重新启动ResumeLayout
- 如果要更改多个子项上的属性,例如
、大小
和位置
属性,则应同时挂起父项和子项。它们都将有多个布局事件触发。只需确保在所有子级恢复后才恢复父级。否则,每个子项的ResumeLayouts都会导致父项的重新发布,因此您将无法从暂停它中获得任何好处边界
- 如果父项有多个子项,但您只希望更改父项的
,则无需挂起任何内容。这将间接地修改一组子对象,但父对象是进行修改的对象,因此它应该已经知道如何有效地处理这些修改。例如,每次用户调整窗口大小时,它都会这样做大小
- 如果父级的多个布局相关属性发生更改,但没有子级的属性发生更改,则只应挂起父级。推理与上一点相同,只是挂起父级,因此它本身只生成一个布局事件
SuspendLayout
不是关于禁止绘制例程,而是关于Layout
事件。此事件由子事件触发,而不是由父事件触发。它是向上滴,而不是向下滴。