![]() |
Languages »
VB.NET »
General
Intermediate
License: The Code Project Open License (CPOL)
Extended error providerBy Shabdar GhataThis article explains you how a basic Error Provider class can be extended to have more functionality |
C#, VB.NET 1.1, WinXPVS.NET2003, VS2005, Dev
|
||||||||||
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||

This article explains you how a basic Error Provider class can be extended to include more functionality. This extended class can reduce coding significantly for validating mandatory objects on windows form.
1) 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,
Private Sub txtStudentName_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtStudentName.Validating If txtStudentName.Text = "" Then ErrorProvider1.SetError(txtStudentName, "Please enter student name") Else ErrorProvider1.SetError(txtStudentName, "") End If End Sub
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,
MyErrorProvider.Controls.Add(txtStudentName, "Student Full Name", "Please enter student name")
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.
1) Method for adding controls
MyErrorProvider.Controls.Add(<ControlName> as String,<DisplayName(Optional)> as String,<ErrorMessage(Optional)> as String)
2) Setting summary message
MyErrorProvider.SummaryMessage = "Following fields are mandatory,"
3) Enabling/Disabling control validation
MyErrorProvider.Controls(txtEmergencyContact).Validate = False
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.
'Declare a variable Dim MyErrorProvider As New ErrorProviderExtended Private Sub TestForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Add controls one by one in error provider. MyErrorProvider.Controls.Add(txtStudentName, "Student Full Name") MyErrorProvider.Controls.Add(txtStudentAge, "Age") MyErrorProvider.Controls.Add(txtEmergencyContact, "Emergency Contact Number") 'Initially make emergency contact field as non mandatory MyErrorProvider.Controls(txtEmergencyContact).Validate = False 'Set summary error message MyErrorProvider.SummaryMessage = "Following fields are mandatory," End Sub Private Sub cmdSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click 'Following function checks all empty fields and returns TRUE if all fields are entered. 'If any mandotary field is empty this function displays a message and returns FALSE. If MyErrorProvider.CheckAndShowSummaryErrorMessage = True Then MessageBox.Show("Data submited successfully.") End If End Sub Private Sub chkAge_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkAge.CheckedChanged If chkAge.Checked Then 'if student's age is less than 10, emergency contact is mandatory MyErrorProvider.Controls(txtEmergencyContact).Validate = True Else 'if student's age is greater than 10, emergency contact is not mandatory MyErrorProvider.Controls(txtEmergencyContact).Validate = False End If End Sub End Class
Description of ErrorProviderExtended class is included as comments in source code.
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.
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 30 Jan 2008 Editor: |
Copyright 2005 by Shabdar Ghata Everything else Copyright © CodeProject, 1999-2009 Web19 | Advertise on the Code Project |