public void ValidationChildren () { string validating = string.Empty; string validated = string.Empty; Form f = new Form (); f.ShowInTaskbar = false; ContainerControl cc = new ContainerControl (); f.Controls.Add (cc); TextBox t = new TextBox (); t.Validating += new CancelEventHandler (delegate (Object obj, CancelEventArgs e) { validating += ("t;"); }); t.Validated += new EventHandler (delegate (Object obj, EventArgs e) { validated += ("t;"); }); cc.Controls.Add (t); TextBox t1 = new TextBox (); t1.Validating += new CancelEventHandler (delegate (Object obj, CancelEventArgs e) { validating += ("t1;"); }); t1.Validated += new EventHandler (delegate (Object obj, EventArgs e) { validated += ("t1;"); }); t1.TabStop = false; cc.Controls.Add (t1); TextBox t2 = new TextBox (); t2.Validating += new CancelEventHandler (delegate (Object obj, CancelEventArgs e) { validating += ("t2;"); }); t2.Validated += new EventHandler (delegate (Object obj, EventArgs e) { validated += ("t2;"); }); t2.Visible = false; cc.Controls.Add (t2); TextBox t3 = new TextBox (); t3.Validating += new CancelEventHandler (delegate (Object obj, CancelEventArgs e) { validating += ("t3;"); }); t3.Validated += new EventHandler (delegate (Object obj, EventArgs e) { validated += ("t3;"); }); t3.Enabled = false; cc.Controls.Add (t3); Panel p = new Panel (); cc.Controls.Add (p); TextBox t4 = new TextBox (); t4.Validating += new CancelEventHandler (delegate (Object obj, CancelEventArgs e) { validating += ("t4;"); }); t4.Validated += new EventHandler (delegate (Object obj, EventArgs e) { validated += ("t4;"); }); p.Controls.Add (t4); Label l = new Label (); l.Validating += new CancelEventHandler (delegate (Object obj, CancelEventArgs e) { validating += ("l;"); }); l.Validated += new EventHandler (delegate (Object obj, EventArgs e) { validated += ("l;"); }); cc.Controls.Add (l); f.Show (); cc.ValidateChildren (); Assert.AreEqual ("t;t1;t2;t3;t4;", validating, "A4a"); Assert.AreEqual ("t;t1;t2;t3;t4;", validated, "A4b"); validating = string.Empty; validated = string.Empty; cc.ValidateChildren (ValidationConstraints.Enabled); Assert.AreEqual ("t;t1;t2;t4;l;", validating, "A5a"); Assert.AreEqual ("t;t1;t2;t4;l;", validated, "A5b"); validating = string.Empty; validated = string.Empty; cc.ValidateChildren (ValidationConstraints.ImmediateChildren); Assert.AreEqual ("t;t1;t2;t3;l;", validating, "A6a"); Assert.AreEqual ("t;t1;t2;t3;l;", validated, "A6b"); validating = string.Empty; validated = string.Empty; cc.ValidateChildren (ValidationConstraints.None); Assert.AreEqual ("t;t1;t2;t3;t4;l;", validating, "A7a"); Assert.AreEqual ("t;t1;t2;t3;t4;l;", validated, "A7b"); validating = string.Empty; validated = string.Empty; cc.ValidateChildren (ValidationConstraints.Selectable); Assert.AreEqual ("t;t1;t2;t3;t4;", validating, "A8a"); Assert.AreEqual ("t;t1;t2;t3;t4;", validated, "A8b"); validating = string.Empty; validated = string.Empty; cc.ValidateChildren (ValidationConstraints.TabStop); Assert.AreEqual ("t;t2;t3;t4;", validating, "A9a"); Assert.AreEqual ("t;t2;t3;t4;", validated, "A9b"); validating = string.Empty; validated = string.Empty; cc.ValidateChildren (ValidationConstraints.Visible); Assert.AreEqual ("t;t1;t3;t4;l;", validating, "A10a"); Assert.AreEqual ("t;t1;t3;t4;l;", validated, "A10b"); validating = string.Empty; validated = string.Empty; cc.ValidateChildren (ValidationConstraints.Enabled | ValidationConstraints.Visible | ValidationConstraints.Selectable); Assert.AreEqual ("t;t1;t4;", validating, "A11a"); Assert.AreEqual ("t;t1;t4;", validated, "A11b"); validating = string.Empty; validated = string.Empty; }