using System;
//----------------------------------------------------------------------
//ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΎΡ TextBox.
//ΠΠ½ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° TextBox, Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ
//ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ,
//ΡΡΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ΅ΠΊΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠΎΡΠΌΠ°ΡΡ:
//###-##-####.
//ΠΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ
//ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π‘Π¨Π.
//----------------------------------------------------------------------
public class SocialSecurityTextBox: System.Windows.Forms.TextBox {
private bool m_inputIsFullValidEntry;
//------------------------------------
//Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½ Π»ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ
//ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ
//------------------------------------
public bool IsFullValidInput {
get {return m_inputIsFullValidEntry;}
}
//ΠΠ±ΡΠ΅ΠΊΡ StringBuilder, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
System.Text.StringBuilder m_sb;
//ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΡΡΡΠΎΠΊ
const int SSNumberLength = 11;
//-----------
//ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
//-----------
public SocialSecurityTextBox() {
//Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° StringBuilder ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ
//ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
m_sb = new System.Text.StringBuilder(SSNumberLength + 5);
m_inputIsFullValidEntry = false;
}
//---------------------------------------------------------------------
//Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ Ρ ΡΠ΅Π»ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ
//Π½ΡΠΆΠ½ΠΎΠΌΡ ΡΠΎΡΠΌΠ°ΡΡ:
//
// Π€ΠΎΡΠΌΠ°Ρ Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ : ###-##-####
// ΡΠΈΠΌΠ²ΠΎΠ»Ρ: 01234567890
//
// [in] inString : Π’Π΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ
// [in/out] selectionStart: Π’Π΅ΠΊΡΡΠ°Ρ ΡΠΎΡΠΊΠ° Π²ΡΡΠ°Π²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅;
// ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ
// ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
//----------------------------------------------------------------------
private string formatText_NNN_NN_NNNN(string inString, ref int selectionStart) {
const int firstDashIndex = 3;
const int secondDashIndex = 6;
//Π£Π΄Π°Π»ΠΈΡΡ ΡΡΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΡΡΠΎΠΊΡ
//Π² ΠΎΠ±ΡΠ΅ΠΊΡ StringBuilder, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Ρ Π½Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
m_sb.Length = 0;
m_sb.Append(inString);
//------------------------------------------------------------
//ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉΡΠΈΠΌΠ²ΠΎΠ» Π² ΡΡΡΠΎΠΊΠ΅, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ
//Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
//------------------------------------------------------------
int currentCharIndex;
currentCharIndex = 0;
while ((currentCharIndex < m_sb.Length) && (currentCharIndex < SSNumberLength)) {
char currentChar;
currentChar = m_sb[currentCharIndex];
if ((currentCharIndex == firstDashIndex) || (currentCharIndex == secondDashIndex))
//-------------------------------
//ΠΠ°Π½Π½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ "-"
//-------------------------------
{
if (currentChar != '-') {
//ΠΡΡΠ°Π²ΠΈΡΡ Π΄Π΅ΡΠΈΡ
m_sb.Insert(currentCharIndex, "-");
//ΠΡΠ»ΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΡΠΊΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ,
//ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΌΠ΅ΡΠ΅Π½Π° Π²ΠΏΠ΅ΡΠ΅Π΄
if (currentCharIndex <= selectionStart) {
selectionStart++;
}
}
//ΠΡΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ» Π³ΠΎΠ΄ΠΈΡΡΡ, ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
currentCharIndex++;
} else
//-------------------------
//Π‘ΠΈΠΌΠ²ΠΎΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΡΠΎΠΉ
//-------------------------
{
if (System.Char.IsDigit(currentChar) == false) {
//Π£Π΄Π°Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»
m_sb.Remove(currentCharIndex, 1);
//ΠΡΠ»ΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΡΠΊΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠΈ,
//ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΌΠ΅ΡΠ΅Π½Π° Π½Π°Π·Π°Π΄
if (currentCharIndex < selectionStart) {
selectionStart--;
}
//He ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈΠ±ΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ
//ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΈΠΌΠ²ΠΎΠ», Π·Π°Π½ΡΠ²ΡΠΈΠΉ ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°,
//ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ
} else {
//Π‘ΠΈΠΌΠ²ΠΎΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠΎΠΉ, Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
currentCharIndex++;
}
}
}
//ΠΡΠ»ΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½Π° Π΄Π»ΠΈΠ½Π° ΡΡΡΠΎΠΊΠΈ, ΡΡΠ΅ΡΡ Π΅Π΅
if (m_sb.Length > SSNumberLength) {
m_sb.Length = SSNumberLength;
}
//ΠΠΎΠ·Π²ΡΠ°ΡΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ
return m_sb.ToString();
}
bool m_in_OnChangeFunction;
protected override void OnTextChanged(EventArgs e) {
//------------------------------------------------------------------
//ΠΡΠ»ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ .Text, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ
//Π²Ρ ΠΎΠ΄ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
//Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ
//ΠΊΡΠ΄Π°-ΡΠΎ Π΅ΡΠ΅.
//------------------------------------------------------------------
if (m_in_OnChangeFunction == true) {
return;
}
//ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ OnChanged,
//ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ (ΡΠΌ. ΠΊΠΎΠ΄ Π²ΡΡΠ΅)
m_in_OnChangeFunction = true;
//ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ .Text
string oldText = this.Text;
//ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ
SelectionStart int selectionStart = this.SelectionStart;
//Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ»Π° Π½Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ
string newText = formatText_NNN_NN_NNNN(oldText, ref selectionStart);
//ΠΡΠ»ΠΈ ΡΠ΅ΠΊΡΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ
//ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ .Text
if (System.String.Compare(oldText, newText) != 0) {
//ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ
this.Text = newText;
//ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΊΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ
this.SelectionStart = selectionStart;
}
//ΠΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ»ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
//ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌΡ ΡΠΎΡΠΌΠ°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° ΡΡΡΠΎΠΊΠΈ ΡΠΎΠ³Π»Π°ΡΡΠ΅ΡΡΡ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ
//Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΡΡΠΎ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ
//ΡΠΎΡΠΌΠ°Ρ ###-##-####.
if (this.Text.Length == SSNumberLength) {
//ΠΠ°, ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ
m_inputIsFullValidEntry = true;
} else {
//ΠΠ΅Ρ, ΠΌΡ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ
m_inputIsFullValidEntry = false;
}
//ΠΡΠ·Π²Π°ΡΡ Π½Π°Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΡ Π²ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎ
//ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ
base.OnTextChanged(e);
//ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΈ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ
//ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² Π½Π΅Π³ΠΎ.
m_in_OnChangeFunction = false;
}
protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e) {
//ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π±ΡΠΊΠ²Ρ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ,
//ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ , Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ.
char keyPressed = e.KeyChar;
if (System.Char.IsLetter(keyPressed)) {
//Π‘ΠΎΠΎΠ±ΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ
e.Handled =true;
return;
}
//ΠΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ
base.OnKeyPress(e);
} //ΠΠΎΠ½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ
} //ΠΠΎΠ½Π΅Ρ ΠΊΠ»Π°ΡΡΠ°
ΠΠΈΡΡΠΈΠ½Π³ 13.4 ΠΠΎΠ΄ ΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ TextBox//-----------------------------------------------------------------
//ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ TextBox
//-----------------------------------------------------------------
SocialSecurityTextBox m_filteredTextBox;
//--------------------------------------------------------------
//ΠΠΠ ΠΠΠΠ’Π§ΠΠ Π‘ΠΠΠ«Π’ΠΠ: Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ
// ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² ΡΠΎΡΠΌΡ
//--------------------------------------------------------------
private void button1_Click(object sender, System.EventArgs e) {
//Π‘ΠΎΠ·Π΄Π°ΡΡ, ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
m_filteredTextBox = new SocialSecurityTextBox();
m_filteredTextBox.Bounds = new System.Drawing.Rectangle(2, 2, 160, 20);
//ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ
m_filteredTextBox.TextChanged += new EventHandler(this.textBox_TextChanged);
//ΠΠ°Π΄Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ
m_filteredTextBox.Parent =this;
//ΠΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
m_filteredTextBox.Focus();
//Π‘Π΄Π΅Π»Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²Π΅ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
//Π½Π΅ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π²ΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ
SocialSecurityTextBox button1.Enabled = false;