gpt4 book ai didi

c# - (C#) SuspendLayout 是否级联到子控件?

转载 作者:太空狗 更新时间:2023-10-29 20:40:49 26 4
gpt4 key购买 nike

C#:SuspendLayout 是否级联到子控件?

我是否必须自己迭代控件的子控件才能对它们调用 suspendlayout?和他们的孙子?孙子孙女??曾孙子?

谢谢

最佳答案

SuspendLayout 不会递归传播,但根据您的操作,暂停特定控件可能就足够了。

经验法则是:您多次挂起您将要弄乱其布局的控件。

例如:

  • 如果控件包含多个子控件,而您打算添加一个,则无需暂停任何操作。
  • 如果您打算向 parent 添加多个 child ,您应该暂停 parent 。
  • 如果您打算更改一个 child 的 Size 属性,则无需暂停任何操作。 child 只会改变一次,而这反过来只会导致 parent 发生一次改变。
  • 如果您打算更改多个子项的大小,您应该只暂停父项。每个 child 只能调整一次大小,因此无需暂停他们。但是这些子项中的每一个都会导致父项重新布局,因此在您调用 ResumeLayout 后,请暂停父项批量执行所有这些重新布局。
  • 如果您打算更改多个子项的属性,例如 SizeLocationBounds,您应该暂停父项和 children 。它们都将触发多个布局事件。请务必在其所有子级恢复后才恢复父级。否则,子项的每个 ResumeLayout 都会导致父项的重新布局,因此一开始就暂停它不会给您带来任何好处。
  • 如果父项有多个子项,但您只想更改父项的Size,则无需暂停任何操作。这将间接修改一堆 child ,但 parent 是做修改的人,所以它应该已经知道如何有效地处理它。例如,每当用户调整窗口大小时,它就已经这样做了。
  • 如果不止一个父级的布局相关属性发生变化,但没有一个子级的布局相关属性发生变化,则只有父级应该被暂停。推理与上一点相同,只是暂停了父级,因此它本身只产生一个布局事件。

关于c# - (C#) SuspendLayout 是否级联到子控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1634733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com