You should use "Validating" and "Validated" events for checking user's input.
Then if user go to another control "A", and the control "A" has property "CausesValidating" set to "true" ( its default value ) the "Validating" and "Validated" event will be fired.
The menu has "CuasesValidating" property too.
Edit:
Sorry, I forgot the "CuasesValidating" in menu strip is our functionality and not built-in.
But the check for validating is pretty simple:
private void menuStrip1_MenuActivate( object sender, EventArgs e ) {
bool ret = this.Validate( false );
if ( false == ret ) {
// user's input is wrong
}
}
User any ContainerControl instead of "this", if you want check the validation in another control than the "this" form. For example in MDI Child window.