Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to force a control to validate itself?

I've a winforms with some controls and an ErrorProvider. The control's Validating events are used to validate the data and report the error to the ErrorProvider if there is any. This work great when the user enter wrong informations into the control and leaves the control.

However, the validation does not happen if the user click on on without entering any data. Is there any way to force the validation of all controls when the user click on OK? And in the case where some validation failed, how would I know and cancel the OK event?

like image 450
Mathieu Pagé Avatar asked Nov 18 '09 16:11

Mathieu Pagé


2 Answers

You can use Form.ValidateChildren to force the validation of all the controls on the form, as long as they support validation. Note that any control with CausesValidation set to False will not raise a Validating event and will therefore not be validated by ValidateChildren.

like image 184
MartW Avatar answered Oct 04 '22 09:10

MartW


You may also use Validate or ValidateChildren of any ancestor ContainerControl, where Validate should perform best.

Note that Form is a ContainerControl.

like image 23
tm1 Avatar answered Oct 04 '22 08:10

tm1