'ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
'----------------------------------------------------
AddHandler newButton.Click, _
AddressOf Me.ClickHandlerForButtons
'---------------------------------------------
'ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΊ ΡΠΎΡΠΌΠ΅. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²Ρ,
'ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π° ΡΠΎΡΠΌΠ΅!
'---------------------------------------------
newButton.Parent = Me
'Π£Π²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΠ΅ΡΡΠΈΠΊ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ
m_nextNewButtonIndex = m_nextNewButtonIndex + 1
End Sub
'-----------------------------------------------------
'ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ
'ΠΊ Π½Π°ΡΠΈΠΌ Π½ΠΎΠ²ΡΠΌ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ
'-----------------------------------------------------
Private Sub ClickHandlerForButtons(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim buttonCausingEvent As Button = _
CType(sender, System.Windows.Forms.Button)
'ΠΡΠ·Π²Π°ΡΡ ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈΠ·Π²Π΅ΡΠ°ΡΡΠ΅Π΅ ΠΎ ΡΠΎΠΌ,
'ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅
MsgBox("Click event from:" + vbCrLf + buttonCausingEvent.Text)
End Sub
ΠΠΈΡΡΠΈΠ½Π³ 13.3. Π€ΠΈΠ»ΡΡΡΡΡΡΠ΅Π΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅Π΅ ΡΠ΅ΠΊΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ###-##-####Option Strict On
Imports System
'----------------------------------------------------------------------------
'ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
'TextBox.
'ΠΠ½ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° TextBox, Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ
'ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ,
'ΡΡΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ΅ΠΊΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΠ°ΡΡ:
'###-##-####.
'ΠΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ,
'ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² Π‘Π¨Π.
'-----------------------------------------------------------------------------
Public Class SocialSecurityTextBox
Inherits System.Windows.Forms.TextBox
Private m_inputIsFullValidEntry As Boolean
'------------------------------------------------
'Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½ Π»ΠΈ
'Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ
'------------------------------------------------
Public ReadOnly Property IsFullValidInput() As Boolean
Get
Return m_inputIsFullValidEntry
End Get
End Property
'ΠΠ±ΡΠ΅ΠΊΡ StringBuilder, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Private m_sb As System.Text.StringBuilder
'ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΡΡΡΠΎΠΊ
Const SSNumberLength As Integer = 11
'-----------
'ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
'-----------
Public Sub New()
'Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° StringBuilder ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ
'ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
m_sb = New System.Text.StringBuilder(SSNumberLength + 5)
m_inputIsFullValidEntry = False
End Sub
'---------------------------------------------------------------------
'Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ Ρ ΡΠ΅Π»ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ
'Π½ΡΠΆΠ½ΠΎΠΌΡ ΡΠΎΡΠΌΠ°ΡΡ:
'
' Π€ΠΎΡΠΌΠ°Ρ Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ: ###-##-####
' ΡΠΈΠΌΠ²ΠΎΠ»Ρ: 01234567890
'
' [in] inString : Π’Π΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ
' [in/out] selectionStart: Π’Π΅ΠΊΡΡΠ°Ρ ΡΠΎΡΠΊΠ° Π²ΡΡΠ°Π²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅;
' ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ
' ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
'----------------------------------------------------------------------
Private Function formatText_NNN_NN_NNNN(ByVal inString As _
String, ByRef selectionStart As Integer) As String
Const firstDashIndex As Integer = 3
Const secondDashIndex As Integer = 6
'Π£Π΄Π°Π»ΠΈΡΡ ΡΡΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΡΡΠΎΠΊΡ
'Π² ΠΎΠ±ΡΠ΅ΠΊΡ StringBuilder, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Ρ Π½Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
m_sb.Length = 0
m_sb.Append(inString)
'------------------------------------------------------------
'ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² ΡΡΡΠΎΠΊΠ΅, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ
'Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
'------------------------------------------------------------
Dim currentCharIndex As Integer
currentCharIndex = 0
While ((currentCharIndex < m_sb.Length) AndAlso _
(currentCharIndex < SSNumberLength))
Dim currentChar As Char
currentChar = m_sb(currentCharIndex)
If ((currentCharIndex = firstDashIndex) OrElse _
(currentCharIndex = secondDashIndex)) Then
'-------------------------------
'The character needs to be a "-"
'-------------------------------
If (currentChar <> "-"c) Then 'ΠΡΡΠ°Π²ΠΈΡΡ Π΄Π΅ΡΠΈΡ
m_sb.Insert(currentCharIndex, "-")
'ΠΡΠ»ΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΡΠΊΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ,
'ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΌΠ΅ΡΠ΅Π½Π° Π²ΠΏΠ΅ΡΠ΅Π΄
If (currentCharIndex <= selectionStart) Then
selectionStart = selectionStart + 1
End If
End If
'ΠΡΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ» Π³ΠΎΠ΄ΠΈΡΡΡ, ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
currentCharIndex = currentCharIndex + 1
Else
'-------------------------
'Π‘ΠΈΠΌΠ²ΠΎΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΡΠΎΠΉ
'-------------------------
If (System.Char.IsDigit(currentChar) = False) Then
'Π£Π΄Π°Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»
m_sb.Remove(currentCharIndex, 1)
'ΠΡΠ»ΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΡΠΊΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ,
'ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΌΠ΅ΡΠ΅Π½Π° Π½Π°Π·Π°Π΄
If (currentCharIndex < selectionStart) Then
selectionStart = selectionStart - 1
End If
'He ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈΠ±ΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ
'ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΈΠΌΠ²ΠΎΠ», Π·Π°Π½ΡΠ²ΡΠΈΠΉ ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°,
'ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ
Else
'Π‘ΠΈΠΌΠ²ΠΎΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠΎΠΉ, Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
currentCharIndex = currentCharIndex + 1
End If
End If
End While
'ΠΡΠ»ΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½Π° Π΄Π»ΠΈΠ½Π° ΡΡΡΠΎΠΊΠΈ, ΡΡΠ΅ΡΡ Π΅Π΅
If (m_sb.Length > SSNumberLength) Then
m_sb.Length = SSNumberLength
End If
'ΠΠΎΠ·Π²ΡΠ°ΡΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ
Return m_sb.ToString()
End Function
Private m_in_OnChangeFunction As Boolean
Protected Overrides Sub OnTextChanged(ByVal e As EventArgs)
'------------------------------------------------------------------
'ΠΡΠ»ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ .Text, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ
'Π²Ρ ΠΎΠ΄ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
'Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ
'ΠΊΡΠ΄Π°-ΡΠΎ Π΅ΡΠ΅.
'------------------------------------------------------------------
If (m_in_OnChangeFunction = True) Then
Return
End If
'ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ OnChanged,
'ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ (ΡΠΌ. ΠΊΠΎΠ΄ Π²ΡΡΠ΅)
m_in_OnChangeFunction = True
'ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ .Text
Dim oldText As String = Me.Text
'ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ SelectionStart
Dim selectionStart As Integer = Me.SelectionStart
'Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ»Π° Π½Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ
Dim newText As String = formatText_NNN_NN_NNNN(oldText, _
selectionStart)
'ΠΡΠ»ΠΈ ΡΠ΅ΠΊΡΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
'ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ .Text
If (oldText <> newText) Then
'ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ
Me.Text = newText
'ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΊΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ
Me.SelectionStart = selectionStart
End If
'ΠΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ»ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌΡ
'ΡΠΎΡΠΌΠ°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° ΡΡΡΠΎΠΊΠΈ ΡΠΎΠ³Π»Π°ΡΡΠ΅ΡΡΡ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ Π½ΠΎΠΌΠ΅ΡΠ°
'ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΡΡΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ
'ΡΠΎΡΠΌΠ°Ρ ###-##-####.
If (Me.Text.Length = SSNumberLength) Then
'ΠΠ°, ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ
m_inputIsFullValidEntry = True
Else
'ΠΠ΅Ρ, ΠΌΡ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ
m_inputIsFullValidEntry = False
End If
'ΠΡΠ·Π²Π°ΡΡ Π½Π°Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΡ Π²ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ
'ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ
MyBase.OnTextChanged(e)
'ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΈ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ
'ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² Π½Π΅Π³ΠΎ.
m_in_OnChangeFunction = False
End Sub
Protected Overrides Sub OnKeyPress( _
ByVal e As System.Windows.Forms.KeyPressEventArgs)
'ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ,
'ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ , Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ.
Dim keyPressed As Char = e.KeyChar
If (System.Char.IsLetter(keyPressed)) Then
'Π‘ΠΎΠΎΠ±ΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ
e.Handled = True
Return
End If
'ΠΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ
MyBase.OnKeyPress(e)
End Sub
End Class
ΠΠΈΡΡΠΈΠ½Π³ 13.4. ΠΠΎΠ΄ ΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ TextBox'-----------------------------------------------------------------