Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '------------------------------------------------------------------------------------------
- ' Notice of My Copyright and Intellectual Property Rights
- '
- ' Any intellectual property contained within the program by Joseph L. Bolen remains the
- ' intellectual property of the Joseph L. Bolen. This means that no person may distribute,
- ' publish or provide such intellectual property to any other person or entity for any
- ' reason, commercial or otherwise, without the express written permission of Joseph L. Bolen.
- '
- ' Copyright © 2015. All rights reserved.
- ' All trademarks remain the property of their respective owners.
- '-------------------------------------------------------------------------------------------
- ' Program Name: MaskedTextBox Demo
- '
- ' Author: Joseph L. Bolen
- ' Date Created: May 2015
- '
- ' Description: Demonstrate the use of the MaskedTextBox with ErrorProvider.
- '
- ' Documentation is at:
- ' App's screen image is at: http://imgur.com/RjMBnCZ
- ' App's Visual Basic .NET code is at http://pastebin.com/4njJ74nF
- ' Video tutorial at YouTube: http://www.youtube.com/user/bolenpresents
- '-------------------------------------------------------------------------------------------
- Public Class MainForm
- #Region " Form events"
- ' Form loads and basic initialization is set.
- Private Sub MainForm_Load(sender As Object, e As EventArgs) _
- Handles Me.Load
- ' Force validation to pass all checks. This is the default setting.
- Me.AutoValidate = AutoValidate.EnablePreventFocusChange
- End Sub
- Private Sub MainForm_FormClosing(sender As Object, e As FormClosingEventArgs) _
- Handles MyBase.FormClosing
- ' Must set e.Cancel to false to exit program,
- ' if form's AutoValidate is set to EnablePreventFocusChange.
- e.Cancel = False
- End Sub
- #End Region
- #Region " Mainline Processing Section"
- ' Place value of masked textboxes into corresponding labels
- Private Sub ProcessButton_Click(sender As Object, e As EventArgs) _
- Handles ProcessButton.Click
- ErrorProvider1.Clear()
- If ValidateChildren() Then
- Numeric5DigitLabel.Text = Numeric5DigitMaskedTextBox.Text
- PhoneNumberLabel.Text = PhoneNumberMaskedTextBox.Text
- ShortDateLabel.Text = ShortDateMaskedTextBox.Text
- UpperCaseLabel.Text = UpperCaseMaskedTextBox.Text.Trim
- ' Place cursor in first input control.
- Numeric5DigitMaskedTextBox.Focus()
- End If
- End Sub
- Private Sub ClearButton_Click(sender As Object, e As EventArgs) _
- Handles ClearButton.Click
- ' Clear MaskedTextBoxes
- Numeric5DigitMaskedTextBox.Clear()
- PhoneNumberMaskedTextBox.Clear()
- ShortDateMaskedTextBox.Clear()
- UpperCaseMaskedTextBox.Clear()
- ' Clear Labels
- Numeric5DigitLabel.Text = String.Empty
- PhoneNumberLabel.Text = String.Empty
- ShortDateLabel.Text = String.Empty
- UpperCaseLabel.Text = String.Empty
- ' Clear ErrorProvider
- ErrorProvider1.Clear()
- ' Place cursor in first input control.
- Numeric5DigitMaskedTextBox.Focus()
- End Sub
- ' Change TextMaskFormat setting for all MaskedTextBoxes.
- Private Sub RadioButton_CheckedChapted(sender As Object, e As EventArgs) _
- Handles IncludeLiteralsRadioButton.CheckedChanged,
- IncludePromptRadioButton.CheckedChanged,
- IncludePromptNLiteralsRadioButton.CheckedChanged,
- ExcludePromptNLiteralsRadioButton.CheckedChanged
- ' Clear Labels
- Numeric5DigitLabel.Text = String.Empty
- PhoneNumberLabel.Text = String.Empty
- ShortDateLabel.Text = String.Empty
- UpperCaseLabel.Text = String.Empty
- Select Case True
- Case IncludeLiteralsRadioButton.Checked
- Numeric5DigitMaskedTextBox.TextMaskFormat = MaskFormat.IncludeLiterals
- PhoneNumberMaskedTextBox.TextMaskFormat = MaskFormat.IncludeLiterals
- ShortDateMaskedTextBox.TextMaskFormat = MaskFormat.IncludeLiterals
- UpperCaseMaskedTextBox.TextMaskFormat = MaskFormat.IncludeLiterals
- Case IncludePromptRadioButton.Checked
- Numeric5DigitMaskedTextBox.TextMaskFormat = MaskFormat.IncludePrompt
- PhoneNumberMaskedTextBox.TextMaskFormat = MaskFormat.IncludePrompt
- ShortDateMaskedTextBox.TextMaskFormat = MaskFormat.IncludePrompt
- UpperCaseMaskedTextBox.TextMaskFormat = MaskFormat.IncludePrompt
- Case IncludePromptNLiteralsRadioButton.Checked
- Numeric5DigitMaskedTextBox.TextMaskFormat = MaskFormat.IncludePromptAndLiterals
- PhoneNumberMaskedTextBox.TextMaskFormat = MaskFormat.IncludePromptAndLiterals
- ShortDateMaskedTextBox.TextMaskFormat = MaskFormat.IncludePromptAndLiterals
- UpperCaseMaskedTextBox.TextMaskFormat = MaskFormat.IncludePromptAndLiterals
- Case ExcludePromptNLiteralsRadioButton.Checked
- Numeric5DigitMaskedTextBox.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals
- PhoneNumberMaskedTextBox.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals
- ShortDateMaskedTextBox.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals
- UpperCaseMaskedTextBox.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals
- End Select
- End Sub
- #End Region
- #Region " MaskInputRejected Section"
- Private Sub Numeric5DigitMaskedTextBox_MaskInputRejected(sender As Object, e As MaskInputRejectedEventArgs) _
- Handles Numeric5DigitMaskedTextBox.MaskInputRejected
- '' Using MessageBox.
- 'Dim ErrorMsg As String = "Error: " & e.RejectionHint.ToString() &
- ' " at position: " & (e.Position + 1).ToString()
- 'MessageBox.Show(ErrorMsg)
- ErrorProvider1.SetError(Numeric5DigitMaskedTextBox, String.Empty)
- If Numeric5DigitMaskedTextBox.MaskFull Then
- ErrorProvider1.SetError(Numeric5DigitMaskedTextBox,
- "You cannot enter any more data into the field. Delete some digits in order to insert more data.")
- Else
- ErrorProvider1.SetError(Numeric5DigitMaskedTextBox,
- "Error: " & e.RejectionHint.ToString() & " at position: " & (e.Position + 1).ToString())
- 'ErrorProvider1.SetError(Numeric5DigitMaskedTextBox,
- ' "You can only add numeric characters (0-9) into this field.")
- End If
- End Sub
- Private Sub PhoneNumberMaskedTextBox_MaskInputRejected(sender As Object, e As MaskInputRejectedEventArgs) _
- Handles PhoneNumberMaskedTextBox.MaskInputRejected
- ErrorProvider1.SetError(PhoneNumberMaskedTextBox, String.Empty)
- If PhoneNumberMaskedTextBox.MaskFull Then
- ErrorProvider1.SetError(PhoneNumberMaskedTextBox,
- "You cannot enter any more data into the field. Delete some digits in order to insert more data.")
- Else
- ErrorProvider1.SetError(PhoneNumberMaskedTextBox,
- "You can only add numeric characters (0-9) into this field.")
- End If
- End Sub
- Private Sub ShortDateMaskedTextBox_MaskInputRejected(sender As Object, e As MaskInputRejectedEventArgs) _
- Handles ShortDateMaskedTextBox.MaskInputRejected
- ErrorProvider1.SetError(ShortDateMaskedTextBox, String.Empty)
- If ShortDateMaskedTextBox.MaskFull Then
- ErrorProvider1.SetError(ShortDateMaskedTextBox,
- "You cannot enter any more data into the field. Delete some digits in order to insert more data.")
- Else
- ErrorProvider1.SetError(ShortDateMaskedTextBox,
- "You can only add numeric characters (0-9) into this field.")
- End If
- End Sub
- Private Sub UpperCaseMaskedTextBox_MaskInputRejected(sender As Object, e As MaskInputRejectedEventArgs) _
- Handles UpperCaseMaskedTextBox.MaskInputRejected
- ErrorProvider1.SetError(UpperCaseMaskedTextBox, String.Empty)
- If UpperCaseMaskedTextBox.MaskFull Then
- ErrorProvider1.SetError(UpperCaseMaskedTextBox,
- "You cannot enter any more data into the field. Delete some characters in order to insert more data.")
- Else
- ErrorProvider1.SetError(UpperCaseMaskedTextBox,
- "You can only add characters into this field.")
- End If
- End Sub
- #End Region
- #Region " Masked Textbox TypeValidationCompleted Section"
- ' Validation of data entered. Example of date validation.
- Private Sub ShortDateMaskedTextBox_TypeValidationCompleted(sender As Object, e As TypeValidationEventArgs) _
- Handles ShortDateMaskedTextBox.TypeValidationCompleted
- ErrorProvider1.SetError(ShortDateMaskedTextBox, String.Empty)
- 'If not a required field. Strip Prompt and Literals to see if empty string.
- If ShortDateMaskedTextBox.Text.Replace("/", "").Replace("_", "").Trim = String.Empty Then Exit Sub
- If Not e.IsValidInput Then
- ErrorProvider1.SetError(ShortDateMaskedTextBox,
- "The data you supplied must be a valid date in the format mm/dd/yyyy.")
- e.Cancel = True
- Beep()
- Else
- ' Now that the input has passed basic type validation, enforce more specific type rules.
- ' This could be done in a validating event for this MaskedTextBox instead of here.
- Dim DateEntered As DateTime = CDate(e.ReturnValue)
- If (DateEntered < DateTime.Now) Then
- ErrorProvider1.SetError(ShortDateMaskedTextBox,
- "The date in this field must be greater than today's date.")
- e.Cancel = True
- Beep()
- End If
- End If
- End Sub
- #End Region
- #Region " Validating Section"
- Private Sub Numeric5DigitMaskedTextBox_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) _
- Handles Numeric5DigitMaskedTextBox.Validating
- ErrorProvider1.SetError(Numeric5DigitMaskedTextBox, String.Empty)
- Dim aNumericValue As Integer
- Integer.TryParse(Numeric5DigitMaskedTextBox.Text, aNumericValue)
- If aNumericValue < 0 OrElse aNumericValue > 50000 Then
- ErrorProvider1.SetError(Numeric5DigitMaskedTextBox,
- "Value entered must be between 0 and 50000.")
- e.Cancel = True
- Beep()
- End If
- End Sub
- Private Sub PhoneNumberMaskedTextBox_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) _
- Handles PhoneNumberMaskedTextBox.Validating
- ErrorProvider1.SetError(PhoneNumberMaskedTextBox, String.Empty)
- ' If not a required field. Strip Prompt and Literals to see if empty string.
- If PhoneNumberMaskedTextBox.Text.Replace("(", "").Replace(")", "").Replace("-", "").Trim = String.Empty Then Exit Sub
- ' However, if some digits have been entered, it must be fill completely.
- If Not PhoneNumberMaskedTextBox.MaskCompleted Then
- ErrorProvider1.SetError(PhoneNumberMaskedTextBox,
- "Phone number is not completely entered.")
- e.Cancel = True
- Beep()
- End If
- End Sub
- Private Sub UpperCaseMaskedTextBox_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) _
- Handles UpperCaseMaskedTextBox.Validating
- ErrorProvider1.SetError(UpperCaseMaskedTextBox, String.Empty)
- If (UpperCaseMaskedTextBox.Text.Trim <> String.Empty) _
- AndAlso (UpperCaseMaskedTextBox.Text.Trim <> "JOE") Then
- ErrorProvider1.SetError(UpperCaseMaskedTextBox,
- "You can only enter JOE into this field.")
- e.Cancel = True
- Beep()
- End If
- End Sub
- #End Region
- End Class
Advertisement
Add Comment
Please, Sign In to add comment