Advertisement
tolikpunkoff

TextBox Insert/Replace mode (round)

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