Articles in this section
Category / Section

How to restrict the user to enter only valid time in WinForms MaskedEditBox?

1 min read

Custom validate event

We can restrict the user to enter only valid time using CustomValidate event of MaskedEditBox. This event is raised when typing each character and validates the input.

C#

private void maskedEditBox1_MaskCustomValidate(object sender,
Syncfusion.Windows.Forms.Tools.MaskCustomValidateArgs e)
{
    currentText.Remove(0, this.currentText.Length);
    currentText.Append(this.maskedEditBox1.Text);
    if (e.CurrentIndex ==0)
    {
        currentText[e.CurrentIndex] = e.CurrentCharacter;
        if (e.CurrentCharacter <= '0' || e.CurrentCharacter > '2')
        {
            e.Handled = true;
            e.Accepted = false;
        }
    }
    else if (e.CurrentIndex ==1)
    {
        currentText[e.CurrentIndex] = e.CurrentCharacter;
        if (currentText[0] > '1')
        {
            if (e.CurrentCharacter >= '5')
            {
                e.Handled = true;
                e.Accepted = false;
            }
        }
    }
    else if (e.CurrentIndex ==3)
    {
        currentText[e.CurrentIndex] = e.CurrentCharacter;
        if (e.CurrentCharacter > '5')
        {
            e.Handled = true;
            e.Accepted = false;
        }
    }
    else if (e.CurrentIndex == 4)
    {
       currentText[e.CurrentIndex] = e.CurrentCharacter;
    }
}

 

VB

Private Sub maskedEditBox1_MaskCustomValidate(ByVal sender As Object, ByVal e As
Syncfusion.Windows.Forms.Tools.MaskCustomValidateArgs) Handles
maskedEditBox1.MaskCustomValidate
    currentText.Remove(0, Me.currentText.Length)
    currentText.Append(Me.maskedEditBox1.Text)
    If e.CurrentIndex =0 Then
       currentText(e.CurrentIndex) = e.CurrentCharacter
       If e.CurrentCharacter <= "0"c OrElse e.CurrentCharacter > "2"c Then
          e.Handled = True
          e.Accepted = False
       End If
    EndIf
    ElseIf e.CurrentIndex =1 Then
       currentText(e.CurrentIndex) = e.CurrentCharacter
       If currentText(0) > "1"c Then
          If e.CurrentCharacter >= "5"c Then
             e.Handled = True
             e.Accepted = False
          End If
       End If
    EndIf
    ElseIf e.CurrentIndex =3 Then
       currentText(e.CurrentIndex) = e.CurrentCharacter
       If e.CurrentCharacter > "5"c Then
          e.Handled = True
          e.Accepted = False
       End If
    EndIf
    ElseIf e.CurrentIndex = 4 Then
       currentText(e.CurrentIndex) = e.CurrentCharacter
    End If
End Sub

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments
Please sign in to leave a comment
Access denied
Access denied