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