- Category: Visual Basic.Net
- Published on Tuesday, 25 November 2008 16:26
- Written by Shabdar
- Hits: 14138
This article describes how a basic Error Provider class can be extended to include more functionality. This extended class can reduce significant coding for validating objects on windows form.
1) Allows you to validate multiple controls without writing events for each control separately.
If you use basic Error Provider, you need to write validating event for each control that you want to check. For example, for checking txtStudentName text box control, you might write code as below,
Same event you need to write for each control that you want to validate. It increases code significantly in bigger projects.
But with extended error provider, all you need to write is just,
2) Display custom message box.
With extended error provider you can set custom error message box for missing fields which are mandatory.
3) Conditional validation of controls.
You can enable or disable validation control based upon certain conditions.
Usage of ErrorProviderExtended class
1) Method for adding controls
2) Setting summary message
3) Enabling/Disabling control validation
Using the code
Open ErrorProvidelExtended.sln solution in Visual Studio.Net. There are two projects inside ErrorProvidelExtended.sln solution. First project is Extended Error Provider class. Second Project is a sample usage for extended error provider.
Using extended error provider is fairly simple. Description of code is included as comments.
Description of ErrorProviderExtended class is included as comments in source code.
Points of Interest
I have used an extended collection base class for ErrorProviderExtended.Controls property. It uses ValidationControlCollection class which is derived from CollectionBase class. Each Control is of type ValidationControl. ValidationControl class has all required properties like DisplayName, ErrorMessage, Validate, ControlObj etc.
Source code is now available in C# (Visual Studio 2005) edition.
I have published this article on codeproject.com as well. Here is the link to this article.