Как перехватить в TextBox событие вставки данных из буфера ? - VB

Узнай цену своей работы

Формулировка задачи:

Написал свой MaskEdit на основе TextBox и выяснилось, что пользователи часто вводят данные копированием и вставкой из буфера. Короче пока ввод идет по буквам - все Ok Иначе - беда. Как мне перехватить событие вставки, а там я уже разберусь. Помогите пожалуйста.

Решение задачи: «Как перехватить в TextBox событие вставки данных из буфера ?»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Dim RtbKeyBoardEnter As Boolean, RtbKeyS(1)
  4. 'Объявляем переменную - показывает статус, откуда произошло изменения. Массив - хранит два последних аски кода, которые были нажаты на клаве. При том если это были коды комбинации клавиш Shift+Insert или Ctrl+V, то они обрабатываются....
  5.  
  6. Private Sub RichTextBox1_Change()
  7. If Not RtbKeyBoardEnter Then MsgBox 'Вставка из буфера!' 'если ввод не с клавы (т.е. если  идет вставка из буфера (независимо - мышой или с помощью комбинаций - выводим мессагу)
  8. '**************** твой код *************
  9. RtbKeyBoardEnter = False 'снимаем флажок ввода с клавы
  10. End Sub
  11.  
  12. Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
  13. RtbKeyBoardEnter = True 'ставим флажок ввода с клавы
  14. RtbKeyS(0) = RtbKeyS(1) ' изменяем массив
  15. RtbKeyS(1) = KeyCode
  16. If RtbKeyS(0) = 16 And RtbKeyS(1) = 45 Then RtbKeyBoardEnter = False 'проверка - являются ли два последних нажатия комбинацией клавиш для вставки... если являются, то это означает что изменения произошли не с клавы...
  17. If RtbKeyS(0) = 17 And RtbKeyS(1) = 86 Then RtbKeyBoardEnter = False
  18. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы