Imports System Imports System.ComponentModel Imports System.Windows.Forms Partial Public Class NullableNumericBox Inherits TextBox ' Implements ISupportInitialize _ _ Public Event ValueChanged As EventHandler _ _ _ Public Overridable Property Value() As Nullable(Of Decimal) Get Dim strValue As String = MyBase.Text Dim decValue As Decimal = 0D If Decimal.TryParse(strValue, decValue) Then Return decValue End If Return Nothing End Get Set(ByVal value As Nullable(Of Decimal)) If value.HasValue Then MyBase.Text = String.Format("{0}", value.Value) Else MyBase.Text = String.Empty End If Me.OnValueChanged(EventArgs.Empty) MyBase.OnTextChanged(EventArgs.Empty) End Set End Property Protected Overridable Sub OnValueChanged(ByVal e As EventArgs) RaiseEvent ValueChanged(Me, e) End Sub _ _ Public Overrides Property Text() As String Get Return MyBase.Text End Get Set(ByVal value As String) MyBase.Text = value End Set End Property _ Public Overrides ReadOnly Property TextLength() As Integer Get Return MyBase.TextLength End Get End Property _ Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs) MyBase.OnTextChanged(e) End Sub ' Private Sub BeginInit() Implements ISupportInitialize.BeginInit ' End Sub ' Private Sub EndInit() Implements ISupportInitialize.EndInit ' End Sub End Class