Consider this:
Each control is either a contributor or not. Each control determines if another control is required or not. Each control implies a set of rules. The validating and validated events are designed to dynamically check these rules.
A CmdLet has a set of validation attributes on each parameter. This is a linear method of implementing a state machine. Each parameter attempts to validate its set of rules. Look at the overarching rule - a parameter belongs to a parameter set. Other "validating" states are [ValidateNotNull()], [ValidateRange()], [ValidateLength()]...etc. This is what validation in Forms does but is more flexible. The newer [ValidateScript()] is modeled after the Windows Forms "Validating" event. The plus in forms is we get two bytes at the apple. We get validating and validated. We get to think about things when the control or form is "Validating" then, assuming validating is satisfied, we get called to tell us the things were "Validated" successfully.
Look at all events in Windows. "OnBefore<thing>", "On<thing>",OnAfter<thing>". It is a pattern. It is an ancient pattern in the world, the universe and in computing. Once you realize that Windows "anticipates", "acts" and "looks back" then you will begin to understand what Windows is about. We see this pattern start in 1945 and continue at Bell Labs in 1962 and at Xerox PARC in 1973. See
https://en.wikipedia.org/wiki/History_o ... _interface. The elements were adopted early because it is the only way to manage an interface based on visual and physical interactions and not on a text based command interface.
[P.S. - I missed PARC due to having left California to early but made it to Bell Labs in Holmdel NJ before Jobs or Gates.
What you are using has a rich and crazy history. It was designed and developed by many very smart scientists and engineers starting when computers were still made out of vacuum tubes and small power plants. My first computer took up most of a floor at Bell Labs and only allowed us to send it boxes of punched cards with data and program. My first "Hello World" program was bigger than a 1Tb USB drive and weighed much more.
AS complex as it seems the events and methods of forms objects are all well thought out. They allow us to do almost anything we can imagine with a GUI.
I know this all sounds too complicated but, once comprehended, it makes building forms easy and allows us to use very small amounts of code. We only need to learn how to think like a form.
See:
https://en.wikipedia.org/wiki/Event-driven_programming
See:
https://en.wikipedia.org/wiki/Finite-state_machine