나는 정확하게 질문을 구사하는 방법을 생각할 수 없다. 그러나 희망을 갖고 나의 의미는 분명 할 것이다. Control.SuspendLayout 및 Control.ResumeLayout은 카운트를 유지합니까?Control.SuspendLayout 및 Control.ResumeLayout은 카운트를 유지합니까?
다시 말해서 SuspendLayout을 두 번 호출하고 ResumeLayout을 한 번 호출하면 레이아웃이 여전히 일시 중지됩니까?
나는 정확하게 질문을 구사하는 방법을 생각할 수 없다. 그러나 희망을 갖고 나의 의미는 분명 할 것이다. Control.SuspendLayout 및 Control.ResumeLayout은 카운트를 유지합니까?Control.SuspendLayout 및 Control.ResumeLayout은 카운트를 유지합니까?
다시 말해서 SuspendLayout을 두 번 호출하고 ResumeLayout을 한 번 호출하면 레이아웃이 여전히 일시 중지됩니까?
이와 같은 질문에 얽매여있는 이유는 거의 없습니다. 소스 코드는 "Reference Source"라는 제목으로 제공됩니다. 그것을 얻는 가장 좋은 방법은 .NET Mass Downloader입니다. 모든 .NET 어셈블리에 소스 코드가 게시 된 것은 아니며 백업은 유서 깊은 Reflector입니다.
어쨋든는 소스 코드는 다음과 거의 같습니다
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...
}
그래서 귀하의 질문에 대한 대답은 : 네.
SuspendLayout을 두 번 호출하고 ResumeLayout을 한 번 호출하면 레이아웃이 여전히 일시 중지됩니까?
번호 레이아웃이 재개됩니다.