gpt4 book ai didi

c# - Control.SuspendLayout 和 Control.ResumeLayout 会计数吗?

转载 作者:太空狗 更新时间:2023-10-30 01:11:50 26 4
gpt4 key购买 nike

我想不出如何准确地表达这个问题,但希望我的意思是清楚的。 Control.SuspendLayout 和 Control.ResumeLayout 会计数吗?

换句话说,如果我调用两次 SuspendLayout,调用一次 ResumeLayout,布局是否仍然暂停?

最佳答案

没有什么理由卡在这样的问题上了。源代码可用,标题为“引用源”。获得它的最佳方式是使用 .NET Mass Downloader .并非每个 .NET 程序集都已发布其源代码,您的备份是可敬的 Reflector .

Anyhoo,源代码大概是这样的:

private byte layoutSuspendCount;

public void SuspendLayout() {
layoutSuspendCount++;
if (layoutSuspendCount == 1) OnLayoutSuspended();
}

public void ResumeLayout() {
ResumeLayout(true);
}

public void ResumeLayout(bool performLayout) {
if (layoutSuspendCount > 0) {
if (layoutSuspendCount == 1) OnLayoutResuming(performLayout);
layoutSuspendCount--;
if (layoutSuspendCount == 0 && performLayout) {
PerformLayout();
}
}
}

internal void PerformLayout(LayoutEventArgs args) {
if (layoutSuspendCount > 0) {
//...
return;
}
//etc...
}

所以你的问题的答案是:是的。

关于c# - Control.SuspendLayout 和 Control.ResumeLayout 会计数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1650690/

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