Samuel said:
Thanks,
All I found is the MaskedTextBox control and the Mask property which doesn't
have a mask for email or URL address
Cheers,
Samuel
You can write a class that inherits the MaskedTextbox and uses regular
expressions for validation. It's pretty easy.
Here's an old piece of code I found for doing that:
(It could probably use a bit of work though - I have a newer version,
but not on this computer)
''' <summary>
''' This class is a text box that will make sure that its input only
contains text matching its
''' regular expression.
''' </summary>
''' <remarks>If the user attempts to enter a character that causes the
text to not match the
''' regular expression, then the text will be reverted to what it was
before the user's action.</remarks>
Public Class regexpTextBox
Inherits System.Windows.Forms.TextBox
Protected myRegex As New System.Text.RegularExpressions.Regex(".*",
System.Text.RegularExpressions.RegexOptions.Compiled)
Protected myRegexStr As String
Protected myStr As String = ""
''' <summary>
''' Gets or sets the string representation of this regexpTextBox.
''' </summary>
Overridable Property regex() As String
Get
Return myRegexStr
End Get
Set(ByVal value As String)
If value <> "" Then
myRegexStr = value
myRegex = New
System.Text.RegularExpressions.Regex(myRegexStr,
System.Text.RegularExpressions.RegexOptions.Compiled)
End If
End Set
End Property
''' <summary>
''' This procedure is used to check if this TextBox's text matches
its regular expression.
''' </summary>
''' <remarks>If the match is unsuccessful, then text will not be
updated.</remarks>
Public Overridable Sub match()
Dim myMatch As System.Text.RegularExpressions.Match =
myRegex.Match(Me.Text)
If myMatch.Success Then
myStr = Me.Text
Else
Me.Text = myStr
'MsgBox("You must match: " & myRegexStr,
MsgBoxStyle.Exclamation, "RegexpTextBox")
End If
End Sub
Private Sub regexpTextBox_TextChanged(ByVal sender As Object, ByVal
e As System.EventArgs) Handles Me.TextChanged
Me.match()
End Sub
End Class