<p>I have a TextBox control on my Form. I use the Leave event on the control to process user input. It works fine if the user clicks on some other control on the form, but the even doesn't get fired when the user goes straight to the main menu. Any ideas which event should I use to get it fired everytime?</p>

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 "CausesValidation" set to "true" ( its default value ) the "Validating" and "Validated" event will be fired.
The menu has "CausesValidation" property too.
Edit:
Sorry, I forgot the "CausesValidation" 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
    }
}
```
```
Use any ContainerControl instead of "this", if you want check the validation in another control than the "this" form. For example in MDI Child window.