Advertisement
tolikpunkoff

TextBox Insert/Replace mode

Jan 27th, 2018
455
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.69 KB | None | 0 0
  1.         bool InsertMode = false;
  2.         private void txtTest_KeyUp(object sender, KeyEventArgs e)
  3.         {
  4.             if (e.KeyData == Keys.Insert)
  5.             {
  6.                 InsertMode = !InsertMode;                
  7.             }
  8.  
  9.         }
  10.  
  11.         private void txtTest_KeyPress(object sender, KeyPressEventArgs e)
  12.         {
  13.             //Вытаскиваю объект, который вызвал событие,
  14.             //чтоб можно было подключить несколько TextBox'ов
  15.             TextBox tb = (TextBox)sender;
  16.            
  17.             //если включен соотв. режим, курсор не в конце текста
  18.             //и не нажата какая-либо управляющая клавиша
  19.             //заменим символ перед курсором
  20.             if (InsertMode && tb.SelectionStart < tb.TextLength
  21.                 && !Char.IsControl(e.KeyChar))
  22.             {                                
  23.                 //выделяем 1 символ перед курсором
  24.                 //область выделения автоматически заменится
  25.                 //символом, введенным  с клавиатуры
  26.                 tb.SelectionLength  = 1;
  27.  
  28.                 //если выделен символ перевода строки, значит это конец строки
  29.                 //в multiline TextBox,  
  30.                 if (tb.SelectedText == "\r" || tb.SelectedText == "\n")
  31.                     tb.SelectionLength = 0; //не надо ничего заменять, убираем выделение
  32.             }
  33.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement