Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ .NET Compact FrameworkΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 128

Автор Иво Π‘Π°Π»ΠΌΡ€Π΅

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;