building customs classes & control in vb.net
1: Public Class RegexTextBox
2: Inherits TextBox
3:
4: Private FExpression As String
5:
6: Public Property Expression() As String
7: Get
8: Return FExpression
9: End Get
10: Set(ByVal Value As String)
11: FExpression = Value
12: End Set
13: End Property
14:
15: Protected Overrides Sub OnValidating( _
16: ByVal e As CancelEventArgs)
17: If (FExpression = String.Empty OrElse _
18: Regex.IsMatch(Text, FExpression) OrElse _
19: AcceptMismatch()) Then
20: MyBase.OnValidating(e)
21: Else
22: e.Cancel = True
23: End If
24: End Sub
25:
26: Private Function AcceptMismatch() As Boolean
27: Dim Message As String = String.Format( _
28: "Text {0} does not match expression {1}", _
29: Text, FExpression)
30:
31: Return MessageBox.Show(Message, "Validating", _
32: MessageBoxButtons.OKCancel, MessageBoxIcon.Error) = _
33: DialogResult.OK
34: End Function
35:
36: End Class