Textbox validating event
However, I prefer to call it explicitly and handle all validation at once since you most likely will take action only if the entire control’s children pass validation. The most important thing to recognize here is how precise you can be with the validation error message in the error provider.There are 2 code paths for validation failure, and in each case we provide the user with an appropriate error message.There is no need to validate a control that loses focus when the user wishes to cancel out of the form; therefore, the button’s Causes Validation property can be set to false.
You do not have to disable the Form’s Auto Validate property.
This article was originally published in the "Chris Sells on . I don't mean don't trust them to pay (which is a completely separate issue that I won't go into here). For that, you need to handle a control's Validating event: The Validating will be called when moving focus from a control on the dialog that has the Causes Validation property set to true to another control that has the Causes Validation property set to true, e.g. The Validating event gives the handler the chance to cancel the move of focus by setting the Cancel Event Args. In this example, if the user doesn't enter a name into the text box, than the Validating event handler notifies the user of their transgression and cancels the event, which will keep the focus on the text box with invalid data.
However, sometimes you need to validate more free form data entry, like what a user types into a text box.
This behavior was achieved by dragging an Error Provider component onto the dialog and handling the Validating event like so: Notice the call to Error Provider.
Set Error, passing in the control the error is associated with (which we get from the sender argument to the Validating event), along with the error string, which will be used as the tool tip.
A better way is to use the Error Provider component, which shows the user that there's a problem and provides a tooltip with extra information, as shown in Figure 1.