salve a tutti dato il seguente codice:

codice:
Imports Microsoft.VisualBasic

Public Class UserControl1
    'Inherits System.Windows.Forms.UserControl
    Inherits System.Windows.Forms.TextBox

#Region " Codice generato da Progettazione Windows Form "

    Public Sub New()
        MyBase.New()

        'Chiamata richiesta da Progettazione Windows Form.
        InitializeComponent()

        'Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent()

    End Sub

    'UserControl1 esegue l'override del metodo Dispose per pulire l'elenco dei componenti.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Richiesto da Progettazione Windows Form
    Private components As System.ComponentModel.IContainer

    'NOTA: la procedura che segue è richiesta da Progettazione Windows Form.
    'Può essere modificata in Progettazione Windows Form.  
    'Non modificarla nell'editor del codice.
    Private WithEvents TXT_Data As System.Windows.Forms.TextBox
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.TXT_Data = New System.Windows.Forms.TextBox
        Me.SuspendLayout()
        '
        'TXT_Data
        '
        Me.TXT_Data.Location = New System.Drawing.Point(0, 0)
        Me.TXT_Data.MaxLength = 10
        Me.TXT_Data.Name = "TXT_Data"
        Me.TXT_Data.Size = New System.Drawing.Size(120, 20)
        Me.TXT_Data.TabIndex = 0
        Me.TXT_Data.Text = "__/__/____"
        '
        'UserControl1
        '
        Me.Controls.Add(Me.TXT_Data)
        Me.Name = "UserControl1"
        Me.Size = New System.Drawing.Size(120, 16)
        Me.ResumeLayout(False)

    End Sub

#End Region
    Dim testo As String

    Private TestoFormat As String = "__/__/____"
    Private mMessageTitle As String

    Public Shadows Property BackColor() As Color
        Get
            Return Me.TXT_Data.BackColor
        End Get
        Set(ByVal Value As Color)
            Me.TXT_Data.BackColor = Value
        End Set
    End Property
    Public Shadows Property Text() As String
        Get
            Return Me.TXT_Data.Text
        End Get
        Set(ByVal Value As String)
            Me.TXT_Data.Text = Value
        End Set
    End Property

    Public Shadows Property MessageTitle() As String
        Get
            Return mMessageTitle
        End Get
        Set(ByVal Value As String)
            mMessageTitle = Value
        End Set
    End Property

    Private Sub TXT_Data_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TXT_Data.Validating
        If Me.TXT_Data.Text = TestoFormat Then Exit Sub

        If IsDate(Me.TXT_Data.Text) = False Then
            MessageBox.Show("Data invalida", MessageTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning)
            Me.TXT_Data.Focus()
            Me.TXT_Data.SelectAll()
        End If

    End Sub

    Private Sub TXT_Data_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TXT_Data.KeyDown
        'Exit Sub
        testo = Me.TXT_Data.Text
        ' Me.TXT_Data.Text = ""
        testo = Replace(testo, "/", "")
        testo = Replace(testo, "_", "")
        Dim lun As Integer = Len(testo)

        If e.KeyCode = Keys.Back Or e.KeyCode = Keys.Cancel Then
            ' If testo = "" Then Exit Sub
            'testo = Mid(testo, 1, Len(testo) - 1)
            Exit Sub
        End If

        If lun = 8 Then Exit Sub 'gli impedisco di aggiungere
        If IsNumeric(Chr(e.KeyCode)) = False Then Exit Sub
        testo = testo & Chr(e.KeyCode)
        lun = Len(testo)
        Dim app As String

        Select Case lun
            Case Is = 1
                app = Mid(testo, 1, 2) & "_/__/___"
            Case Is = 2
                app = Mid(testo, 1, 2) & "/__/___"
            Case Is = 3
                app = Mid(testo, 1, 2) & "/" & Mid(testo, 3, 1) & "_/___"
            Case Is = 4
                app = Mid(testo, 1, 2) & "/" & Mid(testo, 3, 2) & "/___"
            Case Is = 5
                app = Mid(testo, 1, 2) & "/" & Mid(testo, 3, 2) & "/" & Mid(testo, 5, 1) & "___"
            Case Is = 6
                app = Mid(testo, 1, 2) & "/" & Mid(testo, 3, 2) & "/" & Mid(testo, 5, 2) & "__"
            Case Is = 7
                app = Mid(testo, 1, 2) & "/" & Mid(testo, 3, 2) & "/" & Mid(testo, 5, 3) & "_"
            Case Is = 8
                app = Mid(testo, 1, 2) & "/" & Mid(testo, 3, 2) & "/" & Mid(testo, 5, 4)
        End Select
        'testo = Me.TXT_Data.Text
        Me.TXT_Data.Text = app
    End Sub


End Class

voglio creare una maschera per formattare l'inserimetno delle date
solo che conquesto codice se isnerisco 4 mi compare 44 e via dicendo,insomma duplica tutto quello che inserisco
non so cosa fare
grazie