dotnetmonitor.com |
|
||||||||||||
| SuspendLayout and ResumeLayout only prevent OnLayout
from being called. Additionally they only prevent OnLayout from being called
for that particular control. So if you have a Form with a Panel in it, and call
SuspendLayout on the Form, the Panel's layout is not suspended.
private void button1_Click(object sender, EventArgs e) { this.Layout += new LayoutEventHandler(Form1_Layout); panel1.Layout += new LayoutEventHandler(Panel1_Layout);
// Test one - calling PerformLayout here does not call Form1_Layout this.SuspendLayout(); this.PerformLayout(); this.ResumeLayout(false);
// Test two - calling PerformLayout here calls Panel1_Layout // Child controls are not suspended when the parent is suspended. this.SuspendLayout(); panel1.PerformLayout(); this.ResumeLayout(false);
// Test three, properly suspending layout this.SuspendLayout(); panel1.SuspendLayout(); panel1.PerformLayout(); // <--- Layout event on Panel NOT called panel1.ResumeLayout(false); this.ResumeLayout(false);
panel1.Layout -= new LayoutEventHandler(Panel1_Layout); this.Layout -= new LayoutEventHandler(Form1_Layout);
} |
||||||||||||
|
||||||||||||